28 lines
773 B
GDScript
28 lines
773 B
GDScript
# res://scripts/mount/mount_profile.gd
|
|
@tool
|
|
class_name MountProfile
|
|
extends Resource
|
|
|
|
enum Surface {
|
|
GROUND = 1,
|
|
WATER = 2,
|
|
AIR = 4,
|
|
LAVA = 8,
|
|
}
|
|
|
|
@export var species : PokemonData
|
|
@export_flags("Terre:1", "Eau:2", "Ciel:4", "Lave:8") var surfaces : int = Surface.GROUND
|
|
|
|
@export_group("Mouvement")
|
|
@export var mount_speed : float = 8.0
|
|
@export var mount_accel : float = 6.0
|
|
@export var mount_deccel : float = 7.0
|
|
@export var mount_jump_height : float = 2.5 # ignoré si AIR est actif (vol libre plutôt que saut)
|
|
|
|
@export_group("Attache")
|
|
@export var seat_offset : Vector3 = Vector3(0, 1.2, -0.3)
|
|
@export var mount_scene_override : PackedScene # sinon utilise species.model_scene
|
|
|
|
func can_use_surface(surface : Surface) -> bool:
|
|
return (surfaces & surface) != 0
|