* Changements de la texture des cristaux de Talion dans tous les assets 3D pour correspondre aux assets 2D * Ajout d'un évenement en fin de région, une résurgence de Talion qui décontamine et fait looter les plantes mature aux alentours * Ajout d'un path finding sur le mouvement du robot * Modification du flow des actions à la souris : ajout d'un nouveau son, d'un icône à l'emplacement de l'action * Modification du nombre et de l'ordre de mutation débloquées * Augmentation de la valeur maximale de zoom * Modification des scores à atteindre dans les premières régions * Modification de l'interface du vaisseau, laissant apparaitre une roadmap plus claire, et laissant inspecter l'inventaire actuel * Modification de l'icône d'action dans les scènes 3D * Augmentation de la zone d'écart entre les plantes, et augmentation du taux de zone fertile en conséquence * La station de recharge devient inutilisable après la fin de la région * Ajout d'une transparence lors de la sélection d'objets derrières d'autres objets * Les plantes juvéniles donneront toujours une graine si coupées * Ajout d'un bouclage sur les couleurs des mutations * Fix des hitbox des plantes pour l'inspection à la souris * Fix de plusieurs bugs sur la manipulation de l'inventaire * Ajout de nombreux screenshots d'utilisation des outils lors du tutoriel * Amélioration mineure de la traduction/wording
64 lines
1.5 KiB
GDScript
64 lines
1.5 KiB
GDScript
extends Entity
|
|
class_name InspectableEntity
|
|
|
|
const MODULATE_INSPECTED_COLOR = Color("#96B3DB")
|
|
const MODULATE_AFFECTED_COLOR = Color("#FF006E")
|
|
const DESC_ICON = preload("res://common/icons/align-right.svg")
|
|
|
|
@export var default_info_title = ""
|
|
@export_multiline var default_info_desc = ""
|
|
|
|
@onready var default_modulate : Color = modulate
|
|
@onready var inspectable_signals_setuped : bool = setup_inspectable_signals()
|
|
|
|
var mouse_over := false
|
|
|
|
func inspect(is_inspected : bool = true):
|
|
modulate = MODULATE_INSPECTED_COLOR if is_inspected else default_modulate
|
|
|
|
func affect_preview(is_affected : bool = true):
|
|
modulate = MODULATE_AFFECTED_COLOR if is_affected else default_modulate
|
|
|
|
func setup_inspectable_signals() -> bool:
|
|
mouse_entered.connect(_on_mouse_entered)
|
|
mouse_exited.connect(_on_mouse_excited)
|
|
return true
|
|
|
|
func _on_mouse_entered():
|
|
mouse_over = true
|
|
Pointer.inspect(self)
|
|
|
|
func _on_mouse_excited():
|
|
mouse_over = false
|
|
Pointer.stop_inspect(self)
|
|
|
|
func pointer_text() -> String:
|
|
return default_info_title
|
|
|
|
func card_info() -> CardInfo:
|
|
var info = CardInfo.new(
|
|
pointer_text()
|
|
)
|
|
|
|
if default_info_desc != "":
|
|
var desc_section = CardSectionInfo.new(
|
|
tr("DESCRIPTION"),
|
|
default_info_desc
|
|
)
|
|
desc_section.title_icon = DESC_ICON
|
|
info.sections.append(
|
|
desc_section
|
|
)
|
|
|
|
return info
|
|
|
|
func _notification(what):
|
|
if (what == NOTIFICATION_PREDELETE):
|
|
Pointer.stop_inspect(self)
|
|
|
|
func get_card_up_padding() -> float:
|
|
return Pointer.CARD_UP_PADDING
|
|
|
|
|
|
func _process(_delta):
|
|
modulate.a = 0.3 if mouse_over and Pointer.inspected != self else 1. |