ajout du camion #87
* changements des objectifs, donnent juste des graines, sprite moins gros et objectifs plus nombreux * changement de la probabilité de mutation * refactor du code terrain et planet
This commit is contained in:
@@ -4,7 +4,6 @@ class_name Tutorial
|
||||
const INDICATOR_SCENE = preload("res://gui/game/tutorial/in_game_indicator/in_game_indicator.tscn")
|
||||
|
||||
var indicators : Array[InGameIndicator]
|
||||
@export var camera : Camera2D
|
||||
@export var player : Player
|
||||
|
||||
@onready var steps : Array[Step] = [
|
||||
@@ -38,30 +37,29 @@ func destroy_indicators():
|
||||
|
||||
func pass_to_step(new_step : Step):
|
||||
actual_step = new_step
|
||||
indicators = new_step.generate_indicators(camera, player)
|
||||
indicators = new_step.generate_indicators(player)
|
||||
for i in indicators:
|
||||
add_child(i)
|
||||
|
||||
class Step:
|
||||
func generate_indicator(cam : Camera2D, text : String) -> InGameIndicator:
|
||||
func generate_indicator(text : String) -> InGameIndicator:
|
||||
var new_indicator : InGameIndicator = INDICATOR_SCENE.instantiate()
|
||||
new_indicator.setup(
|
||||
cam,
|
||||
text
|
||||
)
|
||||
return new_indicator
|
||||
|
||||
func generate_indicators(_cam : Camera2D, _player : Player) -> Array[InGameIndicator]:
|
||||
func generate_indicators(_player : Player) -> Array[InGameIndicator]:
|
||||
return []
|
||||
|
||||
func is_step_over(p : Player) -> bool:
|
||||
func is_step_over(_p : Player) -> bool:
|
||||
return true
|
||||
|
||||
class TakeShovelStep extends Step:
|
||||
func generate_indicators(cam : Camera2D, p: Player) -> Array[InGameIndicator]:
|
||||
func generate_indicators(p: Player) -> Array[InGameIndicator]:
|
||||
for entity in p.planet.entity_container.get_children():
|
||||
if entity is ItemObject and entity.item is Shovel:
|
||||
var indicator = generate_indicator(cam, "Take the Shovel")
|
||||
var indicator = generate_indicator("Take the Shovel")
|
||||
indicator.follow_entity(entity)
|
||||
return [
|
||||
indicator
|
||||
@@ -73,11 +71,11 @@ class TakeShovelStep extends Step:
|
||||
return p.inventory.length() > 0
|
||||
|
||||
class DigLootStep extends Step:
|
||||
func generate_indicators(cam : Camera2D, p: Player) -> Array[InGameIndicator]:
|
||||
func generate_indicators(p: Player) -> Array[InGameIndicator]:
|
||||
var indicators : Array[InGameIndicator] = []
|
||||
for entity in p.planet.entity_container.get_children():
|
||||
if entity is UndergroundLoot:
|
||||
var indicator = generate_indicator(cam, "Dig Underground Loot")
|
||||
var indicator = generate_indicator("Dig Underground Loot")
|
||||
indicator.follow_entity(entity)
|
||||
indicators.append(
|
||||
indicator
|
||||
@@ -85,17 +83,17 @@ class DigLootStep extends Step:
|
||||
return indicators
|
||||
|
||||
func is_step_over(p : Player) -> bool:
|
||||
for entity in p.planet.entity_container.get_children():
|
||||
for entity in p.terrain.entity_container.get_children():
|
||||
if entity is ItemObject and entity.item is Seed:
|
||||
return true
|
||||
return false
|
||||
|
||||
class TakeSeedStep extends Step:
|
||||
func generate_indicators(cam : Camera2D, p: Player) -> Array[InGameIndicator]:
|
||||
func generate_indicators(p: Player) -> Array[InGameIndicator]:
|
||||
var indicators : Array[InGameIndicator] = []
|
||||
for entity in p.planet.entity_container.get_children():
|
||||
for entity in p.terrain.entity_container.get_children():
|
||||
if entity is ItemObject and entity.item is Seed:
|
||||
var indicator = generate_indicator(cam, "Take a seed")
|
||||
var indicator = generate_indicator("Take a seed")
|
||||
indicator.follow_entity(entity)
|
||||
indicators.append(
|
||||
indicator
|
||||
@@ -109,23 +107,23 @@ class TakeSeedStep extends Step:
|
||||
return false
|
||||
|
||||
class PlantSeedStep extends Step:
|
||||
func generate_indicators(cam : Camera2D, p: Player) -> Array[InGameIndicator]:
|
||||
var indicator = generate_indicator(cam, "Plant the seed in decontamined zone")
|
||||
func generate_indicators(p: Player) -> Array[InGameIndicator]:
|
||||
var indicator = generate_indicator("Plant the seed in decontamined zone")
|
||||
indicator.follow_game_position(Vector2(0,0) + p.planet.entity_container.global_position)
|
||||
return [indicator]
|
||||
|
||||
func is_step_over(p : Player) -> bool:
|
||||
for entity in p.planet.entity_container.get_children():
|
||||
for entity in p.terrain.entity_container.get_children():
|
||||
if entity is Plant:
|
||||
return true
|
||||
return false
|
||||
|
||||
class RechargeStep extends Step:
|
||||
func generate_indicators(cam : Camera2D, p: Player) -> Array[InGameIndicator]:
|
||||
func generate_indicators(p: Player) -> Array[InGameIndicator]:
|
||||
for entity in p.planet.entity_container.get_children():
|
||||
var indicator = generate_indicator(cam, "Recharge to pass days")
|
||||
var indicator = generate_indicator("Recharge to pass days")
|
||||
indicator.follow_entity(entity)
|
||||
if entity is RechargeStation:
|
||||
if entity is TruckRecharge:
|
||||
return [
|
||||
indicator
|
||||
]
|
||||
@@ -133,13 +131,17 @@ class RechargeStep extends Step:
|
||||
return []
|
||||
|
||||
func is_step_over(p : Player) -> bool:
|
||||
if p.planet == null :
|
||||
return false
|
||||
return p.planet.day > 1
|
||||
|
||||
class WaitMaturePlant extends Step:
|
||||
func generate_indicators(_cam : Camera2D, _p: Player) -> Array[InGameIndicator]:
|
||||
func generate_indicators(_p: Player) -> Array[InGameIndicator]:
|
||||
return []
|
||||
|
||||
func is_step_over(p : Player) -> bool:
|
||||
if p.planet == null :
|
||||
return false
|
||||
for entity in p.planet.entity_container.get_children():
|
||||
if entity is Plant and entity.state == Plant.State.MATURE:
|
||||
return true
|
||||
@@ -149,11 +151,11 @@ class HarvestMaturePlant extends Step:
|
||||
|
||||
var mature_plant_number : int = 0
|
||||
|
||||
func generate_indicators(cam : Camera2D, p: Player) -> Array[InGameIndicator]:
|
||||
func generate_indicators(p: Player) -> Array[InGameIndicator]:
|
||||
var indicators : Array[InGameIndicator] = []
|
||||
for entity in p.planet.entity_container.get_children():
|
||||
if entity is Plant and entity.state == Plant.State.MATURE:
|
||||
var indicator = generate_indicator(cam, "Harvest mature plants with shovel")
|
||||
var indicator = generate_indicator("Harvest mature plants with shovel")
|
||||
indicator.follow_entity(entity)
|
||||
indicators.append(
|
||||
indicator
|
||||
@@ -162,8 +164,10 @@ class HarvestMaturePlant extends Step:
|
||||
return indicators
|
||||
|
||||
func is_step_over(p : Player) -> bool:
|
||||
if p.planet == null :
|
||||
return false
|
||||
var actual_mature_plant_number = 0
|
||||
for entity in p.planet.entity_container.get_children():
|
||||
if entity is Plant and entity.state == Plant.State.MATURE:
|
||||
actual_mature_plant_number += 1
|
||||
return mature_plant_number != actual_mature_plant_number
|
||||
return mature_plant_number != actual_mature_plant_number
|
||||
|
||||
Reference in New Issue
Block a user