Plant blinking when about to dye
This commit is contained in:
@@ -6,28 +6,28 @@ const PLANT_GROWING_AREA_HEIGHT = 70
|
||||
const PLANT_MATURE_AREA_HEIGHT = 150
|
||||
const HARVESTED_SEED_DISPLACEMENT_FACTOR = 100
|
||||
|
||||
const RANDOM_MAX_GROW_INTERVAL = Region.MIN_PASS_DAY_ANIMATION_TIME/2. - 0.1
|
||||
const RANDOM_MAX_GROW_INTERVAL = Region.MIN_PASS_DAY_ANIMATION_TIME / 2. - 0.1
|
||||
const PLANT_TYPE_ICON = preload("res://common/icons/seedling.svg")
|
||||
const SCORE_ICON = preload("res://common/icons/growth.svg")
|
||||
const DURATION_ICON = preload("res://common/icons/clock.svg")
|
||||
const DURATION_ICON = preload("res://common/icons/clock.svg")
|
||||
const SHOVEL_ICON = preload("res://common/icons/shovel.svg")
|
||||
const GROWING_ICON = preload("res://common/icons/clock-up.svg")
|
||||
const LIFETIME_ICON= preload("res://common/icons/clock-death.svg")
|
||||
const GROWING_ICON = preload("res://common/icons/clock-up.svg")
|
||||
const LIFETIME_ICON = preload("res://common/icons/clock-death.svg")
|
||||
const SEED_ICON = preload("res://common/icons/seeds.svg")
|
||||
|
||||
const SPRITE_SCENE : PackedScene = preload("res://entities/plants/plant_sprite.tscn")
|
||||
const SPRITE_SCENE: PackedScene = preload("res://entities/plants/plant_sprite.tscn")
|
||||
|
||||
@export var data : PlantData
|
||||
@export var data: PlantData
|
||||
|
||||
@onready var plant_sprite: PlantSprite
|
||||
@onready var collision_shape: CollisionShape2D
|
||||
@onready var influence_zone : PlantInfluenceZone
|
||||
@onready var influence_zone: PlantInfluenceZone
|
||||
|
||||
var harvested = false
|
||||
var last_state : PlantData.State
|
||||
var last_state: PlantData.State
|
||||
|
||||
func _init(
|
||||
_data : PlantData
|
||||
_data: PlantData
|
||||
):
|
||||
data = _data
|
||||
|
||||
@@ -39,7 +39,7 @@ func _ready():
|
||||
plant_sprite.setup_plant_sprite(data)
|
||||
if region:
|
||||
region.data.updated.connect(
|
||||
func (_d : RegionData):
|
||||
func(_d: RegionData):
|
||||
await get_tree().create_timer(0.05).timeout
|
||||
update_nearby_plant()
|
||||
update_decontamination_area_factor()
|
||||
@@ -47,17 +47,19 @@ func _ready():
|
||||
await get_tree().create_timer(0.05).timeout
|
||||
update_nearby_plant()
|
||||
update_decontamination_area_factor()
|
||||
if data.day == data.get_lifetime() - 1:
|
||||
plant_sprite.apply_about_to_dye_effect()
|
||||
|
||||
func pointer_text() -> String:
|
||||
return data.plant_name
|
||||
|
||||
func inspect(is_inspected : bool = true):
|
||||
plant_sprite.sprite_modulate = MODULATE_INSPECTED_COLOR if is_inspected else default_modulate
|
||||
func inspect(is_inspected: bool = true):
|
||||
plant_sprite.set_modulate_color(MODULATE_INSPECTED_COLOR if is_inspected else default_modulate, false)
|
||||
plant_sprite.display_lifetime_sprite = is_inspected
|
||||
influence_zone.show_influence = is_inspected
|
||||
|
||||
func generate_sprite() -> PlantSprite:
|
||||
var sprite_object : PlantSprite = SPRITE_SCENE.instantiate()
|
||||
var sprite_object: PlantSprite = SPRITE_SCENE.instantiate()
|
||||
|
||||
add_child(sprite_object)
|
||||
# sprite_object.generate_mutation_effects(self)
|
||||
@@ -105,6 +107,9 @@ func _pass_day():
|
||||
for m in data.mutations:
|
||||
m._start_day_effect(self)
|
||||
|
||||
if data.day == data.get_lifetime() - 1:
|
||||
plant_sprite.apply_about_to_dye_effect()
|
||||
|
||||
func _end_pass_day():
|
||||
match data.get_state():
|
||||
PlantData.State.MATURE:
|
||||
@@ -117,9 +122,7 @@ func _end_pass_day():
|
||||
plant_sprite.update_plant_sprite(data, last_state != data.get_state())
|
||||
|
||||
|
||||
func calculate_plant_score(
|
||||
with_state : PlantData.State = data.get_state()
|
||||
) -> int:
|
||||
func calculate_plant_score(with_state: PlantData.State = data.get_state()) -> int:
|
||||
return data.get_score(with_state)
|
||||
|
||||
func harvest():
|
||||
@@ -187,11 +190,11 @@ func update_decontamination_area_factor():
|
||||
var factor = 0.
|
||||
var full_decontaminated = true
|
||||
|
||||
var tiles = Math.get_tiles_in_circle(global_position, influence_zone.radius + Region.TILE_SIZE/2.)
|
||||
for tile : Vector2i in tiles:
|
||||
var tiles = Math.get_tiles_in_circle(global_position, influence_zone.radius + Region.TILE_SIZE / 2.)
|
||||
for tile: Vector2i in tiles:
|
||||
if region.is_coords_decontaminated([tile]):
|
||||
factor += 1./len(tiles)
|
||||
else :
|
||||
factor += 1. / len(tiles)
|
||||
else:
|
||||
full_decontaminated = false
|
||||
|
||||
if full_decontaminated:
|
||||
|
||||
Reference in New Issue
Block a user