From 396c0788cea3bc68022c4bc5a96c82e058bc9b93 Mon Sep 17 00:00:00 2001 From: Matheus Date: Thu, 4 Sep 2025 17:04:52 -0300 Subject: Move move --- scripts/entities/actions/Action.cs | 42 +++++++++ scripts/entities/actions/Action.cs.uid | 1 + scripts/entities/actions/BumpAction.cs | 32 +++++++ scripts/entities/actions/BumpAction.cs.uid | 1 + scripts/entities/actions/DirectionalAction.cs | 30 ++++++ scripts/entities/actions/DirectionalAction.cs.uid | 1 + scripts/entities/actions/MeleeAction.cs | 47 ++++++++++ scripts/entities/actions/MeleeAction.cs.uid | 1 + scripts/entities/actions/MovementAction.cs | 24 +++++ scripts/entities/actions/MovementAction.cs.uid | 1 + scripts/entities/actions/WaitAction.cs | 103 +++++++++++++++++++++ scripts/entities/actions/WaitAction.cs.uid | 1 + scripts/entities/actors/actions/Action.cs | 42 --------- scripts/entities/actors/actions/Action.cs.uid | 1 - scripts/entities/actors/actions/BumpAction.cs | 32 ------- scripts/entities/actors/actions/BumpAction.cs.uid | 1 - .../entities/actors/actions/DirectionalAction.cs | 30 ------ .../actors/actions/DirectionalAction.cs.uid | 1 - scripts/entities/actors/actions/MeleeAction.cs | 47 ---------- scripts/entities/actors/actions/MeleeAction.cs.uid | 1 - scripts/entities/actors/actions/MovementAction.cs | 24 ----- .../entities/actors/actions/MovementAction.cs.uid | 1 - scripts/entities/actors/actions/WaitAction.cs | 103 --------------------- scripts/entities/actors/actions/WaitAction.cs.uid | 1 - 24 files changed, 284 insertions(+), 284 deletions(-) create mode 100644 scripts/entities/actions/Action.cs create mode 100644 scripts/entities/actions/Action.cs.uid create mode 100644 scripts/entities/actions/BumpAction.cs create mode 100644 scripts/entities/actions/BumpAction.cs.uid create mode 100644 scripts/entities/actions/DirectionalAction.cs create mode 100644 scripts/entities/actions/DirectionalAction.cs.uid create mode 100644 scripts/entities/actions/MeleeAction.cs create mode 100644 scripts/entities/actions/MeleeAction.cs.uid create mode 100644 scripts/entities/actions/MovementAction.cs create mode 100644 scripts/entities/actions/MovementAction.cs.uid create mode 100644 scripts/entities/actions/WaitAction.cs create mode 100644 scripts/entities/actions/WaitAction.cs.uid delete mode 100644 scripts/entities/actors/actions/Action.cs delete mode 100644 scripts/entities/actors/actions/Action.cs.uid delete mode 100644 scripts/entities/actors/actions/BumpAction.cs delete mode 100644 scripts/entities/actors/actions/BumpAction.cs.uid delete mode 100644 scripts/entities/actors/actions/DirectionalAction.cs delete mode 100644 scripts/entities/actors/actions/DirectionalAction.cs.uid delete mode 100644 scripts/entities/actors/actions/MeleeAction.cs delete mode 100644 scripts/entities/actors/actions/MeleeAction.cs.uid delete mode 100644 scripts/entities/actors/actions/MovementAction.cs delete mode 100644 scripts/entities/actors/actions/MovementAction.cs.uid delete mode 100644 scripts/entities/actors/actions/WaitAction.cs delete mode 100644 scripts/entities/actors/actions/WaitAction.cs.uid (limited to 'scripts') diff --git a/scripts/entities/actions/Action.cs b/scripts/entities/actions/Action.cs new file mode 100644 index 0000000..f20e262 --- /dev/null +++ b/scripts/entities/actions/Action.cs @@ -0,0 +1,42 @@ +using Godot; + + +/// +/// Action representa uma ação no jogo efetuada por um ator. +/// Ações são geradas pelo jogador e pela IA, elas regem os atores do jogo. +/// +public abstract partial class Action : RefCounted { + /// + /// O ator que realiza a ação. + /// + protected Actor actor; + + // O custo da ação. + protected int cost; + + public Action(Actor actor) { + this.actor = actor; + // Custo base, subclasses podem sobreescrever isto se quiserem. + cost = 10; + } + + /// + /// Método que executa a ação. Subclasses da ação devem implementar este método. + /// + /// Exemplo: + /// + /// Action action = new Action(actor); + /// /* . . . */ + /// action.Perform(); + /// + /// + /// + public abstract void Perform(); + + /// + /// É conveniente ter acesso ao mapa dentro de uma ação. + /// + protected MapData Map_Data { + get => actor.Map_Data; + } +} diff --git a/scripts/entities/actions/Action.cs.uid b/scripts/entities/actions/Action.cs.uid new file mode 100644 index 0000000..9523b0a --- /dev/null +++ b/scripts/entities/actions/Action.cs.uid @@ -0,0 +1 @@ +uid://dlejckfyro2ch diff --git a/scripts/entities/actions/BumpAction.cs b/scripts/entities/actions/BumpAction.cs new file mode 100644 index 0000000..bee202b --- /dev/null +++ b/scripts/entities/actions/BumpAction.cs @@ -0,0 +1,32 @@ +using Godot; + +/// +/// Ação de "Esbarramento", utilizada principalmente pelo jogador. +/// Esta ação direcionada tentará andar para o destino, se houver um +/// ator no caminho, uma ação de ataque é gerada no lugar. +/// +public partial class BumpAction : DirectionalAction +{ + public BumpAction(Actor actor, Vector2I offset) : base(actor, offset) + { + } + + // Como esta ação inevitavelmente gera outras ações, + // não faz sentido descontar a energia do ator. + public override void Perform() + { + // Declaramos uma ação genérica. + Action action; + + // Se houver um ator no destino, crie uma ação de ataque. + if (GetTarget() != null) { + action = new MeleeAction(actor, Offset); + } else { + // Mas se não houver, crie uma ação de movimento. + action = new MovementAction(actor, Offset); + } + + // Executa a ação. + action.Perform(); + } +} diff --git a/scripts/entities/actions/BumpAction.cs.uid b/scripts/entities/actions/BumpAction.cs.uid new file mode 100644 index 0000000..f5ce3f8 --- /dev/null +++ b/scripts/entities/actions/BumpAction.cs.uid @@ -0,0 +1 @@ +uid://p6ij0dsuvv7y diff --git a/scripts/entities/actions/DirectionalAction.cs b/scripts/entities/actions/DirectionalAction.cs new file mode 100644 index 0000000..9c7a915 --- /dev/null +++ b/scripts/entities/actions/DirectionalAction.cs @@ -0,0 +1,30 @@ +using Godot; + +/// +/// Ação direcionada. Esta ação é acompanhada com um vetor que representa uma +/// distância tendo como ponto de partida o ator. +/// +public abstract partial class DirectionalAction : Action +{ + /// + /// Direção/distância do ator da ação. + /// Seu significado depende da ação que implementará esta classe. + /// + public Vector2I Offset { get; private set; } + /// + /// Coordenada do alvo da ação. + /// + public Vector2I Destination { get => actor.GridPosition + Offset; } + public DirectionalAction(Actor actor, Vector2I offset) : base(actor) + { + Offset = offset; + } + + /// + /// Função que obtém o alvo da ação, se houver. + /// + /// O ator alvo da ação, nulo se não houver. + protected Entity GetTarget() { + return Map_Data.GetBlockingEntityAtPosition(Destination); + } +} diff --git a/scripts/entities/actions/DirectionalAction.cs.uid b/scripts/entities/actions/DirectionalAction.cs.uid new file mode 100644 index 0000000..901756a --- /dev/null +++ b/scripts/entities/actions/DirectionalAction.cs.uid @@ -0,0 +1 @@ +uid://cxotc2adk05j8 diff --git a/scripts/entities/actions/MeleeAction.cs b/scripts/entities/actions/MeleeAction.cs new file mode 100644 index 0000000..6dfeb78 --- /dev/null +++ b/scripts/entities/actions/MeleeAction.cs @@ -0,0 +1,47 @@ +using Godot; + +/// +/// Ação de ataque físico. Uma ação direcionada que ataca um alvo. +/// +public partial class MeleeAction : DirectionalAction +{ + public MeleeAction(Actor actor, Vector2I offset) : base(actor, offset) + { + } + + /// + /// Ataca o ator na direção da ação. + /// + public override void Perform() + { + // Eu te disse que este método seria útil. + Entity potentialTarget = GetTarget(); + + // Só podemos atacar atores. + if (potentialTarget is not Actor) { + return; + } + + Actor target = (Actor)potentialTarget; + + + // Se não houver um ator na direção, não podemos continuar. + // Isto é uma ação gratuita. + if (target == null) return; + + // não podemos ter dano negativo. + int damage = actor.Atk - target.Def; + + string attackDesc = $"{actor.DisplayName} ataca {target.DisplayName}"; + + if (damage > 0) { + attackDesc += $" e remove {damage} de HP."; + target.Hp -= damage; + } else { + attackDesc += $" mas {target.DisplayName} tem músculos de aço."; + } + + MessageLogData.Instance.AddMessage(attackDesc); + actor.Energy -= cost; + } +} diff --git a/scripts/entities/actions/MeleeAction.cs.uid b/scripts/entities/actions/MeleeAction.cs.uid new file mode 100644 index 0000000..bc97619 --- /dev/null +++ b/scripts/entities/actions/MeleeAction.cs.uid @@ -0,0 +1 @@ +uid://vbptt0gl1ud0 diff --git a/scripts/entities/actions/MovementAction.cs b/scripts/entities/actions/MovementAction.cs new file mode 100644 index 0000000..2c394fc --- /dev/null +++ b/scripts/entities/actions/MovementAction.cs @@ -0,0 +1,24 @@ +using Godot; + +/// +/// Ação de movimento. Movimenta o ator para a direção de seu Offset. +/// +public partial class MovementAction : DirectionalAction +{ + public MovementAction(Actor actor, Vector2I offset) : base(actor, offset) + { + } + + public override void Perform() + { + // Não anda se o destino for um tile sólido. + if (!Map_Data.GetTile(Destination).IsWalkable) return; + + // Não anda se o destino for oculpado por um ator. + // Na maioria dos casos, essa condição nunca é verdadeira. + if (GetTarget() != null) return; + + actor.Walk(Offset); + actor.Energy -= cost; + } +} diff --git a/scripts/entities/actions/MovementAction.cs.uid b/scripts/entities/actions/MovementAction.cs.uid new file mode 100644 index 0000000..07569ef --- /dev/null +++ b/scripts/entities/actions/MovementAction.cs.uid @@ -0,0 +1 @@ +uid://cdtpdaeg7hh6p diff --git a/scripts/entities/actions/WaitAction.cs b/scripts/entities/actions/WaitAction.cs new file mode 100644 index 0000000..2d3ccc2 --- /dev/null +++ b/scripts/entities/actions/WaitAction.cs @@ -0,0 +1,103 @@ +using Godot; + +/// +/// Ação da inação. Ação que realiza nada. +/// +public partial class WaitAction : Action +{ + public WaitAction(Actor actor) : base(actor) + { + } + + public override void Perform() + { +//-=-==============================================-======++++*@@%*+#%%+*%%#*#%%@%**%%#=:+%@%=--.....::::@@@:................... #@----::@@@@@@@@@@@@@ +//--============--===========================================+@. :@ =% @ :* @#= @@*........@@@:................ .::::::@@@@@@@@@@@@ +//===========================================================+@+ * :+ @ :*%* @%+ @=.......:@@@:.......... ...... ..::.:@@@@@@@@@@@ +//===-===========---========--=========----==========--=======%% . . @ =%@* @%+ @@:......@@@:.......... ....... .....:*@@@@@@@@@@ +//=========-==========================--==============-=======#@ #@ #* @%+ @@:.. .@@@:. ........ ..... ..:*@@@@*@@@@@@@@@ +//============================--====---=======================*@ * @@ %@@* @%+ @=. @@@... . =@@@: #@@@@@@@@ +//===--==-========----==---=----==----===========-===-==#@@@@@@@- @ @@ :#%* #*+ *#*: .@@@: . .. .@@@@@@@@ +//-------==--==-==---::---======----===-----==--===---===*%@@@@@* @: @@ * = %= %@@. .. =@@@@@@@ +//--==---==-=--=====----======-=----==-===---=======--========@@@@@%*=+#%#*-=*%%%%**#%%%#*#%%%*=.%@@: @@@@@@@ +//===-=-----=--=--====--======--====-===-=--==----========--==@@@@@: #@@: . . :=*@@@@@@@ +//==--==-===-==-==@@+====--=----==-==-==---=------===========@@@@@@@@@- #@@: . .. :@@@@@@@+@@@@@@ +//==---=--=======@%@*@%-==-==-==-========--==----========-===@ .*@@@@+ #@@: . @@@@@@ +//========-====--==@@%@@+@%===-=--======--:-====-===========%+ .=@@@@%. #@@: . . =@@@@@ +//---=-=-==-----=====*@==@@*@@+==-----=-----====--===@@@*==*@ -@@@@@- :*##=*@@- . . .@@@@@ +//------------===---===%@*=@%=*@*==------------==-=--%@@@@@@: .. ..:#@@@@*:@@@@@@@@@% .@@@@@ +//---==-----===-====-==-==@#=#@@+@@===----==--=====--====%@* ..............+@@@@@@@@@@@@@@. ....:::::. --:+:%: @=:@@@. .::-====@@@@@ +//==-=----==----===--==-----=@-=@@+@#@%=-==-======---====#@ ....:::.::......@@@@@@@@@@@@@% . ..-@#.@:%@*@%.@+ %*:@@*@.@@#@*@=%@# %@@@@@@*@@@@@ +//===----=======-====--=--====-+*%@+@@@=@=--=====--=====+@ .. .+@@@@@@@@@@:...@@@@@@@@@@@@@% -@#@@-@- =@ @% *@.#@.@.@ *@*=@@@% @@@@: +//====--==-===-========---=========@%*@@%%@@#====--====*@: .=@@@@@@%=+: @*::.@@@@@@@@@@@@@@: :@::@=:%@#:.-- :: .: : @@@. +//===---===-==-------:-----=-=====---=@+@@***=========+@: =@@@ : @*=.:@@@@@@@@@@@@@@@ . =@:@@% +//==----===-===-=------==----==--=--====*@@@*==*@@#==+@: . =@ - . #@@*.. +@@@@@@@= . ## -@ +//===---=-==-----=----===----============-======@@@@@@. ..:@= : =@@++== .@@+ . .. -@@@%#@= +//=-=--==-===--------==-=---=---=----------=======*@@. *@@@-@@*@ #= * . . ..:@@@@: +//=====-===-=======-==----====-----=======--==-===%@ .. .=@ = #. .. .. .@: %@@- +//==-==-==-=--===-=====-------=----==--=====-=--=@* .. .* =. :* + .. . %: +//==-==----=-------=------=----==-----==========@: ......+ #%*** @@%%+: . %@= +//===--=-----------=--=--==---===---:=@@@*==-=@@. ....::@ .. %@*:%*-#%#*=: . :=:=%#@@@+ +//==---=-:-====---========-----====-:-=@@@@++@= ....@@%* @-@@+=%%. -@%: -@@@. : +//==----========---------------==========@@@* %@@@:=%@@*@@@@==+@==- .@= .*@- #* +//==-===--===-=---:-----------===========@% :%@=*@@@@@@@@@@@@===%=======+@#+=@#%@ .@@%= +//------=====-------=-:----=#*=========@% :%-.@==@@@@@@@@@@@@++@*=======*@ *= *@@@=. =*=*@@: +//===--=---===------------=*@@@======@% .%- .#%==#@@@@@@@@@@@%+#@@%=====*@ *+*-#@@@- .. . :. %: +//--=======--=-=-----:---=--+@@@=-=@% :%.:==+@*==@@@@@@@@@@@@=---##====*@. *:=@ *@. . . :@@@%@ +//===---=---==---------------=@@@@= =@=======#%-@@@@@@@@@@@@=--*@====*@: @:+@@%.@- . . .@@@@@+ =@*=%=#-. +//=====-----===@@*-----------=@@ *@* =@@=====@+--%@@@@@@@@@@@*-==@====+@= % :@@%@= =#. :. : -*%+#:# +//-=--=--------@@@==---=--+@@@@@@ +@@@= =#%*===-@=--=@@@@@@@@@@@@+-=@=====@+: :@ :. :@@: %* +//*@#==--------=@@@----*@@@@@@@@@@@+ -+=@*===%*--=@@@@@@@@@@@@@=-@*-===%*- : =+ =@%@:.: *%. %* +//%@@+----------+@@@%@@@@@@@@@@@@@@: =*==@+-==@=--@@@@@@@@@@@@@--@*-===%*=:% #: -@@#-: .@@@= +@@@@@% +//+@@#-------==+@@@@@@@@@@@@@@@@@@@@# :: =====@=--=@-=+@@@@@@@@@@@@@-%*====*#=+% @: .:%@@:. *@@%@@@% +//=@@@=---=@@@@@@@@@@@@@@@@@@@@@@@@@@@. =@@= ======@=-=%+==@@@@@@@@@@@@@*=#=====@=%* % ..#@@@. -@@@@@ +//=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=@@* ==-===#*---@*-%@@@@@@@@@@@@@=%=--==@#@=%%. :@ ::*@-%: -#. %@@@@@@. +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* :+-====@=---%%=@@@@@@@@@@@@@%*=-====@*@= @: -@@+=- :@@* +@@@@@@@@@@@@= +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@: =@- ==.==--=@----*%%@@@@@@@@@@@@@*=-====#@==. @: %@=:@= =@@= =@@@@@@@@@@@ +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. .@@% =:.---==%=---=%#@@@@@@@@@@@@@%==-====@+=. *: #%%@.: #@@@@@@@@@@@@@@: +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@::@@- =- --=--*%-----@@@@@@@@@@@@@@@==---===@=. -: :. .@# =@@@@@@@@@@@@@@@@. *@% +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%. @@:= :==---@=----=@@@@@@@@@@@@@@@=--====#* @: . *@@ #@@@@@@@@@@@@@@@@@@@@@- +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@: @@= % ------@=----#@@@@@@@@@@@@@@*-======%+ @ +@. -@@.:@@@@@@@@@@@@@@@@@@@@@@: +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%: @@= .% .-----=@+=---@@@@@@@@@@@@@@@=--==== *: *: :@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@ := +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= %.:------@=---*@@@@@@@@@@@@@@@==-==: *= * *@* =@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:@@@* +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%: =*:-----@----+@@@@@@@@@@@@@@@#-====. -@= @@=-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.@*----%----+@@@@@@@@@@@@@@@@======. +* .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -% +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=-:@----=@@@@@@@@@@@@@@@@@====== -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ :@@# +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%----@@@@@@@@@@@@@@@@@%====== :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@% +//#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%----%@@@@@@@@@@@@@@@@@*=====- -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//++=+*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%----*@@@@@@@@@@@@@@@@@@+=-==== :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= +//=====++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-----@@@@@@@@@@@@@@@@@@@=-=-==- -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//+===++@@%==*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-----@@@@@@@@@@@@@@@@@@@@=---=-- :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//++=++%@@+++=++%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-----#@@@@@@@@@@@@@@@@@@@*======: :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//===++@@==+++====*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-----*@@@@@@@@@@@@@@@@@@@@*--=---. .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//=+++=+++++++++++*@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=-==-=@@@@@@@@@@@@@@@@@@@@@===----: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//===++==+++++++=%@@+==*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+=====@%@@@@@@@@@@@@@@@@@@@@=-----=: %@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//++=====++++===*@%====+==@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=====@*@@@@@@@@@@@@@@@@@@@@@-------: :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//++===+++++====++++========@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=====@+=@@@@@@@@@@@@@@@@@@@@@=------=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//=========+==++++=========+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=====#@=*@@@@@@@@@@@@@@@@@@@@%%----=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//=+++++========+========+@@@*=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=====+@@@@@@@@@@@@@@@@@@@@@@@@=@+-=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//++++++====++=====*@@%==%@*=====#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@ %=====+% @@@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//==+==+===+++++==*@@=*@@#+=======+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@***%@@*=*@@%**%@@%**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//=++==+==++++++++%@@=@*@@%=========*@@@@@@@ %* %+ @= :@+ * @ =@@ @@@@. *# @ %@ # @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//=======++++++#@@+%@@@@@#=========%@@@@@@@@: :: #: :% @ @+ * @ =@@ -: @@@@ @= * @ % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//===++==+++%@%*+%@@*+**+==+====+@@@%==%@@@@+ = %* @ %= * @ =@@ -= @@@@: .@: * @ % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//=+=+====++@@@@@@@@@%=====+==+==#*====+*@@@@ @* @ %= * @ =@@ -= @@@@@ @@: * @ % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//=======%@@*+@@%+++++++========+======+=+@@@ - @* @ %= * @ =@@ -= @.%@@: :@@: * @ % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//==+=+@@**@@@+*@@==++==+===+=========+++++@@ @ @* % @+ + @ :%@ -. @ @@: :@@- + @ + -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//======%@@+*@@@++=++==++===++========+++++#@- @ :@@= -@@ %@ * +* @: :@@@ @@% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//=+@@#@@@@@@=============++=+++=+==+=+%@@@@%@@@@@%=***+=%%@@@%*: -*%%%+:.=@@@*++*#***=. .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//@%+%@@%==*+============+*%@@%*+*%@@@@@@*%@@@@@@@@%#*=+#**#+%*%##*+=*#####+:@@######***#*=*#**@@@@@@@@@@@@@@@#*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//@%==+@@@===============*@ @%% @@+ @* @ *= =% % #+@ % @ -+ @@@= . @ -@ %+ @@@@@@@@@@@@@@@@@@@@@@@@ +//%@@*=================+=*@. @@ :. @ % =# * @. ** @#- =+*:**= =*% @ -* *#@@@@*. *%: @ @ %* *#@@@@@@@@@@@@@@@@@@@@@@@@ +//==@@#===+++======++=+==*@. @@ =: @ @ :# %= %. %@* %= =@ @@% @ =* @@@@@@@= @@: @ . %+ @@@@@@@@@@@@@@@@@@@@@@@@@@ +//%========+====+%@@%+=+=*@. @@ =: @ @ :% @: :@ - =@* %- -@ @@% -* @@@@@= @@: @ %+ @@@@@@@@@@@@@@@@@@@@@@@@ +//**@@@@@%*%@@@@@@*===++=*@. @@ =: @ @ :% =% -% : @* %: -@ @@@ @ =* @%- +@@= @@: @ + . %+ @@@@@@@@@@@@@@@@@@@@@@@@@@ +//@@@@@@@@@@@@@@*======+=*@. *# :. @ % -# * @-+* @# %: -@ @@@ @ =* +**-@@@= @@: @ @ :. %+ *#@@@@@@@@@@@@@@@@@@@@@@@@ +//@@@@@@@@@@@@*====+==++=*@. @ @@* .@* @ .*#. @ @* #: -@ @@% @ -+ =*%@@= @@: @ @ +. #+ *@@@@@@@@@@@@@@@@@@@@@@@ +//@@@@@@@@@@@======++====+*%@@@@%%%@@@@%*+#@@@@@%#%@@#=+**=. =**+=***==*#*: :%@@@@@@@@@**=+#*==*###*=. -=**+::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//@@@@@@@@@@+==+==++=====++=====++=+++++++++===+++++#% +@@@* :#%= =@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + actor.Energy -= cost; + } + + +} \ No newline at end of file diff --git a/scripts/entities/actions/WaitAction.cs.uid b/scripts/entities/actions/WaitAction.cs.uid new file mode 100644 index 0000000..120c8c1 --- /dev/null +++ b/scripts/entities/actions/WaitAction.cs.uid @@ -0,0 +1 @@ +uid://c24ebgrcsn6yi diff --git a/scripts/entities/actors/actions/Action.cs b/scripts/entities/actors/actions/Action.cs deleted file mode 100644 index f20e262..0000000 --- a/scripts/entities/actors/actions/Action.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Godot; - - -/// -/// Action representa uma ação no jogo efetuada por um ator. -/// Ações são geradas pelo jogador e pela IA, elas regem os atores do jogo. -/// -public abstract partial class Action : RefCounted { - /// - /// O ator que realiza a ação. - /// - protected Actor actor; - - // O custo da ação. - protected int cost; - - public Action(Actor actor) { - this.actor = actor; - // Custo base, subclasses podem sobreescrever isto se quiserem. - cost = 10; - } - - /// - /// Método que executa a ação. Subclasses da ação devem implementar este método. - /// - /// Exemplo: - /// - /// Action action = new Action(actor); - /// /* . . . */ - /// action.Perform(); - /// - /// - /// - public abstract void Perform(); - - /// - /// É conveniente ter acesso ao mapa dentro de uma ação. - /// - protected MapData Map_Data { - get => actor.Map_Data; - } -} diff --git a/scripts/entities/actors/actions/Action.cs.uid b/scripts/entities/actors/actions/Action.cs.uid deleted file mode 100644 index 9523b0a..0000000 --- a/scripts/entities/actors/actions/Action.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dlejckfyro2ch diff --git a/scripts/entities/actors/actions/BumpAction.cs b/scripts/entities/actors/actions/BumpAction.cs deleted file mode 100644 index bee202b..0000000 --- a/scripts/entities/actors/actions/BumpAction.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Godot; - -/// -/// Ação de "Esbarramento", utilizada principalmente pelo jogador. -/// Esta ação direcionada tentará andar para o destino, se houver um -/// ator no caminho, uma ação de ataque é gerada no lugar. -/// -public partial class BumpAction : DirectionalAction -{ - public BumpAction(Actor actor, Vector2I offset) : base(actor, offset) - { - } - - // Como esta ação inevitavelmente gera outras ações, - // não faz sentido descontar a energia do ator. - public override void Perform() - { - // Declaramos uma ação genérica. - Action action; - - // Se houver um ator no destino, crie uma ação de ataque. - if (GetTarget() != null) { - action = new MeleeAction(actor, Offset); - } else { - // Mas se não houver, crie uma ação de movimento. - action = new MovementAction(actor, Offset); - } - - // Executa a ação. - action.Perform(); - } -} diff --git a/scripts/entities/actors/actions/BumpAction.cs.uid b/scripts/entities/actors/actions/BumpAction.cs.uid deleted file mode 100644 index f5ce3f8..0000000 --- a/scripts/entities/actors/actions/BumpAction.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://p6ij0dsuvv7y diff --git a/scripts/entities/actors/actions/DirectionalAction.cs b/scripts/entities/actors/actions/DirectionalAction.cs deleted file mode 100644 index 9c7a915..0000000 --- a/scripts/entities/actors/actions/DirectionalAction.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Godot; - -/// -/// Ação direcionada. Esta ação é acompanhada com um vetor que representa uma -/// distância tendo como ponto de partida o ator. -/// -public abstract partial class DirectionalAction : Action -{ - /// - /// Direção/distância do ator da ação. - /// Seu significado depende da ação que implementará esta classe. - /// - public Vector2I Offset { get; private set; } - /// - /// Coordenada do alvo da ação. - /// - public Vector2I Destination { get => actor.GridPosition + Offset; } - public DirectionalAction(Actor actor, Vector2I offset) : base(actor) - { - Offset = offset; - } - - /// - /// Função que obtém o alvo da ação, se houver. - /// - /// O ator alvo da ação, nulo se não houver. - protected Entity GetTarget() { - return Map_Data.GetBlockingEntityAtPosition(Destination); - } -} diff --git a/scripts/entities/actors/actions/DirectionalAction.cs.uid b/scripts/entities/actors/actions/DirectionalAction.cs.uid deleted file mode 100644 index 901756a..0000000 --- a/scripts/entities/actors/actions/DirectionalAction.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cxotc2adk05j8 diff --git a/scripts/entities/actors/actions/MeleeAction.cs b/scripts/entities/actors/actions/MeleeAction.cs deleted file mode 100644 index 6dfeb78..0000000 --- a/scripts/entities/actors/actions/MeleeAction.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Godot; - -/// -/// Ação de ataque físico. Uma ação direcionada que ataca um alvo. -/// -public partial class MeleeAction : DirectionalAction -{ - public MeleeAction(Actor actor, Vector2I offset) : base(actor, offset) - { - } - - /// - /// Ataca o ator na direção da ação. - /// - public override void Perform() - { - // Eu te disse que este método seria útil. - Entity potentialTarget = GetTarget(); - - // Só podemos atacar atores. - if (potentialTarget is not Actor) { - return; - } - - Actor target = (Actor)potentialTarget; - - - // Se não houver um ator na direção, não podemos continuar. - // Isto é uma ação gratuita. - if (target == null) return; - - // não podemos ter dano negativo. - int damage = actor.Atk - target.Def; - - string attackDesc = $"{actor.DisplayName} ataca {target.DisplayName}"; - - if (damage > 0) { - attackDesc += $" e remove {damage} de HP."; - target.Hp -= damage; - } else { - attackDesc += $" mas {target.DisplayName} tem músculos de aço."; - } - - MessageLogData.Instance.AddMessage(attackDesc); - actor.Energy -= cost; - } -} diff --git a/scripts/entities/actors/actions/MeleeAction.cs.uid b/scripts/entities/actors/actions/MeleeAction.cs.uid deleted file mode 100644 index bc97619..0000000 --- a/scripts/entities/actors/actions/MeleeAction.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://vbptt0gl1ud0 diff --git a/scripts/entities/actors/actions/MovementAction.cs b/scripts/entities/actors/actions/MovementAction.cs deleted file mode 100644 index 2c394fc..0000000 --- a/scripts/entities/actors/actions/MovementAction.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Godot; - -/// -/// Ação de movimento. Movimenta o ator para a direção de seu Offset. -/// -public partial class MovementAction : DirectionalAction -{ - public MovementAction(Actor actor, Vector2I offset) : base(actor, offset) - { - } - - public override void Perform() - { - // Não anda se o destino for um tile sólido. - if (!Map_Data.GetTile(Destination).IsWalkable) return; - - // Não anda se o destino for oculpado por um ator. - // Na maioria dos casos, essa condição nunca é verdadeira. - if (GetTarget() != null) return; - - actor.Walk(Offset); - actor.Energy -= cost; - } -} diff --git a/scripts/entities/actors/actions/MovementAction.cs.uid b/scripts/entities/actors/actions/MovementAction.cs.uid deleted file mode 100644 index 07569ef..0000000 --- a/scripts/entities/actors/actions/MovementAction.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cdtpdaeg7hh6p diff --git a/scripts/entities/actors/actions/WaitAction.cs b/scripts/entities/actors/actions/WaitAction.cs deleted file mode 100644 index 2d3ccc2..0000000 --- a/scripts/entities/actors/actions/WaitAction.cs +++ /dev/null @@ -1,103 +0,0 @@ -using Godot; - -/// -/// Ação da inação. Ação que realiza nada. -/// -public partial class WaitAction : Action -{ - public WaitAction(Actor actor) : base(actor) - { - } - - public override void Perform() - { -//-=-==============================================-======++++*@@%*+#%%+*%%#*#%%@%**%%#=:+%@%=--.....::::@@@:................... #@----::@@@@@@@@@@@@@ -//--============--===========================================+@. :@ =% @ :* @#= @@*........@@@:................ .::::::@@@@@@@@@@@@ -//===========================================================+@+ * :+ @ :*%* @%+ @=.......:@@@:.......... ...... ..::.:@@@@@@@@@@@ -//===-===========---========--=========----==========--=======%% . . @ =%@* @%+ @@:......@@@:.......... ....... .....:*@@@@@@@@@@ -//=========-==========================--==============-=======#@ #@ #* @%+ @@:.. .@@@:. ........ ..... ..:*@@@@*@@@@@@@@@ -//============================--====---=======================*@ * @@ %@@* @%+ @=. @@@... . =@@@: #@@@@@@@@ -//===--==-========----==---=----==----===========-===-==#@@@@@@@- @ @@ :#%* #*+ *#*: .@@@: . .. .@@@@@@@@ -//-------==--==-==---::---======----===-----==--===---===*%@@@@@* @: @@ * = %= %@@. .. =@@@@@@@ -//--==---==-=--=====----======-=----==-===---=======--========@@@@@%*=+#%#*-=*%%%%**#%%%#*#%%%*=.%@@: @@@@@@@ -//===-=-----=--=--====--======--====-===-=--==----========--==@@@@@: #@@: . . :=*@@@@@@@ -//==--==-===-==-==@@+====--=----==-==-==---=------===========@@@@@@@@@- #@@: . .. :@@@@@@@+@@@@@@ -//==---=--=======@%@*@%-==-==-==-========--==----========-===@ .*@@@@+ #@@: . @@@@@@ -//========-====--==@@%@@+@%===-=--======--:-====-===========%+ .=@@@@%. #@@: . . =@@@@@ -//---=-=-==-----=====*@==@@*@@+==-----=-----====--===@@@*==*@ -@@@@@- :*##=*@@- . . .@@@@@ -//------------===---===%@*=@%=*@*==------------==-=--%@@@@@@: .. ..:#@@@@*:@@@@@@@@@% .@@@@@ -//---==-----===-====-==-==@#=#@@+@@===----==--=====--====%@* ..............+@@@@@@@@@@@@@@. ....:::::. --:+:%: @=:@@@. .::-====@@@@@ -//==-=----==----===--==-----=@-=@@+@#@%=-==-======---====#@ ....:::.::......@@@@@@@@@@@@@% . ..-@#.@:%@*@%.@+ %*:@@*@.@@#@*@=%@# %@@@@@@*@@@@@ -//===----=======-====--=--====-+*%@+@@@=@=--=====--=====+@ .. .+@@@@@@@@@@:...@@@@@@@@@@@@@% -@#@@-@- =@ @% *@.#@.@.@ *@*=@@@% @@@@: -//====--==-===-========---=========@%*@@%%@@#====--====*@: .=@@@@@@%=+: @*::.@@@@@@@@@@@@@@: :@::@=:%@#:.-- :: .: : @@@. -//===---===-==-------:-----=-=====---=@+@@***=========+@: =@@@ : @*=.:@@@@@@@@@@@@@@@ . =@:@@% -//==----===-===-=------==----==--=--====*@@@*==*@@#==+@: . =@ - . #@@*.. +@@@@@@@= . ## -@ -//===---=-==-----=----===----============-======@@@@@@. ..:@= : =@@++== .@@+ . .. -@@@%#@= -//=-=--==-===--------==-=---=---=----------=======*@@. *@@@-@@*@ #= * . . ..:@@@@: -//=====-===-=======-==----====-----=======--==-===%@ .. .=@ = #. .. .. .@: %@@- -//==-==-==-=--===-=====-------=----==--=====-=--=@* .. .* =. :* + .. . %: -//==-==----=-------=------=----==-----==========@: ......+ #%*** @@%%+: . %@= -//===--=-----------=--=--==---===---:=@@@*==-=@@. ....::@ .. %@*:%*-#%#*=: . :=:=%#@@@+ -//==---=-:-====---========-----====-:-=@@@@++@= ....@@%* @-@@+=%%. -@%: -@@@. : -//==----========---------------==========@@@* %@@@:=%@@*@@@@==+@==- .@= .*@- #* -//==-===--===-=---:-----------===========@% :%@=*@@@@@@@@@@@@===%=======+@#+=@#%@ .@@%= -//------=====-------=-:----=#*=========@% :%-.@==@@@@@@@@@@@@++@*=======*@ *= *@@@=. =*=*@@: -//===--=---===------------=*@@@======@% .%- .#%==#@@@@@@@@@@@%+#@@%=====*@ *+*-#@@@- .. . :. %: -//--=======--=-=-----:---=--+@@@=-=@% :%.:==+@*==@@@@@@@@@@@@=---##====*@. *:=@ *@. . . :@@@%@ -//===---=---==---------------=@@@@= =@=======#%-@@@@@@@@@@@@=--*@====*@: @:+@@%.@- . . .@@@@@+ =@*=%=#-. -//=====-----===@@*-----------=@@ *@* =@@=====@+--%@@@@@@@@@@@*-==@====+@= % :@@%@= =#. :. : -*%+#:# -//-=--=--------@@@==---=--+@@@@@@ +@@@= =#%*===-@=--=@@@@@@@@@@@@+-=@=====@+: :@ :. :@@: %* -//*@#==--------=@@@----*@@@@@@@@@@@+ -+=@*===%*--=@@@@@@@@@@@@@=-@*-===%*- : =+ =@%@:.: *%. %* -//%@@+----------+@@@%@@@@@@@@@@@@@@: =*==@+-==@=--@@@@@@@@@@@@@--@*-===%*=:% #: -@@#-: .@@@= +@@@@@% -//+@@#-------==+@@@@@@@@@@@@@@@@@@@@# :: =====@=--=@-=+@@@@@@@@@@@@@-%*====*#=+% @: .:%@@:. *@@%@@@% -//=@@@=---=@@@@@@@@@@@@@@@@@@@@@@@@@@@. =@@= ======@=-=%+==@@@@@@@@@@@@@*=#=====@=%* % ..#@@@. -@@@@@ -//=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=@@* ==-===#*---@*-%@@@@@@@@@@@@@=%=--==@#@=%%. :@ ::*@-%: -#. %@@@@@@. -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* :+-====@=---%%=@@@@@@@@@@@@@%*=-====@*@= @: -@@+=- :@@* +@@@@@@@@@@@@= -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@: =@- ==.==--=@----*%%@@@@@@@@@@@@@*=-====#@==. @: %@=:@= =@@= =@@@@@@@@@@@ -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. .@@% =:.---==%=---=%#@@@@@@@@@@@@@%==-====@+=. *: #%%@.: #@@@@@@@@@@@@@@: -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@::@@- =- --=--*%-----@@@@@@@@@@@@@@@==---===@=. -: :. .@# =@@@@@@@@@@@@@@@@. *@% -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%. @@:= :==---@=----=@@@@@@@@@@@@@@@=--====#* @: . *@@ #@@@@@@@@@@@@@@@@@@@@@- -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@: @@= % ------@=----#@@@@@@@@@@@@@@*-======%+ @ +@. -@@.:@@@@@@@@@@@@@@@@@@@@@@: -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%: @@= .% .-----=@+=---@@@@@@@@@@@@@@@=--==== *: *: :@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@ := -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= %.:------@=---*@@@@@@@@@@@@@@@==-==: *= * *@* =@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:@@@* -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%: =*:-----@----+@@@@@@@@@@@@@@@#-====. -@= @@=-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.@*----%----+@@@@@@@@@@@@@@@@======. +* .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -% -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=-:@----=@@@@@@@@@@@@@@@@@====== -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ :@@# -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%----@@@@@@@@@@@@@@@@@%====== :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@% -//#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%----%@@@@@@@@@@@@@@@@@*=====- -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//++=+*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%----*@@@@@@@@@@@@@@@@@@+=-==== :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= -//=====++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-----@@@@@@@@@@@@@@@@@@@=-=-==- -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//+===++@@%==*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-----@@@@@@@@@@@@@@@@@@@@=---=-- :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//++=++%@@+++=++%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%-----#@@@@@@@@@@@@@@@@@@@*======: :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//===++@@==+++====*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-----*@@@@@@@@@@@@@@@@@@@@*--=---. .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//=+++=+++++++++++*@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=-==-=@@@@@@@@@@@@@@@@@@@@@===----: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//===++==+++++++=%@@+==*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+=====@%@@@@@@@@@@@@@@@@@@@@=-----=: %@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//++=====++++===*@%====+==@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=====@*@@@@@@@@@@@@@@@@@@@@@-------: :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//++===+++++====++++========@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*=====@+=@@@@@@@@@@@@@@@@@@@@@=------=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//=========+==++++=========+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=====#@=*@@@@@@@@@@@@@@@@@@@@%%----=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//=+++++========+========+@@@*=+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=====+@@@@@@@@@@@@@@@@@@@@@@@@=@+-=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//++++++====++=====*@@%==%@*=====#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@ %=====+% @@@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//==+==+===+++++==*@@=*@@#+=======+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@***%@@*=*@@%**%@@%**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//=++==+==++++++++%@@=@*@@%=========*@@@@@@@ %* %+ @= :@+ * @ =@@ @@@@. *# @ %@ # @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//=======++++++#@@+%@@@@@#=========%@@@@@@@@: :: #: :% @ @+ * @ =@@ -: @@@@ @= * @ % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//===++==+++%@%*+%@@*+**+==+====+@@@%==%@@@@+ = %* @ %= * @ =@@ -= @@@@: .@: * @ % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//=+=+====++@@@@@@@@@%=====+==+==#*====+*@@@@ @* @ %= * @ =@@ -= @@@@@ @@: * @ % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//=======%@@*+@@%+++++++========+======+=+@@@ - @* @ %= * @ =@@ -= @.%@@: :@@: * @ % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//==+=+@@**@@@+*@@==++==+===+=========+++++@@ @ @* % @+ + @ :%@ -. @ @@: :@@- + @ + -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//======%@@+*@@@++=++==++===++========+++++#@- @ :@@= -@@ %@ * +* @: :@@@ @@% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//=+@@#@@@@@@=============++=+++=+==+=+%@@@@%@@@@@%=***+=%%@@@%*: -*%%%+:.=@@@*++*#***=. .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//@%+%@@%==*+============+*%@@%*+*%@@@@@@*%@@@@@@@@%#*=+#**#+%*%##*+=*#####+:@@######***#*=*#**@@@@@@@@@@@@@@@#*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//@%==+@@@===============*@ @%% @@+ @* @ *= =% % #+@ % @ -+ @@@= . @ -@ %+ @@@@@@@@@@@@@@@@@@@@@@@@ -//%@@*=================+=*@. @@ :. @ % =# * @. ** @#- =+*:**= =*% @ -* *#@@@@*. *%: @ @ %* *#@@@@@@@@@@@@@@@@@@@@@@@@ -//==@@#===+++======++=+==*@. @@ =: @ @ :# %= %. %@* %= =@ @@% @ =* @@@@@@@= @@: @ . %+ @@@@@@@@@@@@@@@@@@@@@@@@@@ -//%========+====+%@@%+=+=*@. @@ =: @ @ :% @: :@ - =@* %- -@ @@% -* @@@@@= @@: @ %+ @@@@@@@@@@@@@@@@@@@@@@@@ -//**@@@@@%*%@@@@@@*===++=*@. @@ =: @ @ :% =% -% : @* %: -@ @@@ @ =* @%- +@@= @@: @ + . %+ @@@@@@@@@@@@@@@@@@@@@@@@@@ -//@@@@@@@@@@@@@@*======+=*@. *# :. @ % -# * @-+* @# %: -@ @@@ @ =* +**-@@@= @@: @ @ :. %+ *#@@@@@@@@@@@@@@@@@@@@@@@@ -//@@@@@@@@@@@@*====+==++=*@. @ @@* .@* @ .*#. @ @* #: -@ @@% @ -+ =*%@@= @@: @ @ +. #+ *@@@@@@@@@@@@@@@@@@@@@@@ -//@@@@@@@@@@@======++====+*%@@@@%%%@@@@%*+#@@@@@%#%@@#=+**=. =**+=***==*#*: :%@@@@@@@@@**=+#*==*###*=. -=**+::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//@@@@@@@@@@+==+==++=====++=====++=+++++++++===+++++#% +@@@* :#%= =@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - actor.Energy -= cost; - } - - -} \ No newline at end of file diff --git a/scripts/entities/actors/actions/WaitAction.cs.uid b/scripts/entities/actors/actions/WaitAction.cs.uid deleted file mode 100644 index 120c8c1..0000000 --- a/scripts/entities/actors/actions/WaitAction.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://c24ebgrcsn6yi -- cgit v1.2.3