From 1b49f2502d30636a1e90115d16e4b139696625d6 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 7 Apr 2019 16:04:36 +1000 Subject: [PATCH] Start of action target selection implementation --- src/common/Common.h | 7 + src/scripts/CMakeLists.txt | 2 +- .../action/darkknight/ActionHardSlash3617.cpp | 5 +- .../action/darkknight/ActionUnleash3621.cpp | 24 +++ src/world/Action/Action.cpp | 155 +++++++++++++----- src/world/Action/Action.h | 42 +++++ src/world/Actor/Player.cpp | 2 +- src/world/Manager/ActionMgr.cpp | 7 +- src/world/Session.cpp | 7 +- src/world/Session.h | 2 +- src/world/Util/ActorFilter.cpp | 15 +- src/world/Util/ActorFilter.h | 24 ++- 12 files changed, 229 insertions(+), 63 deletions(-) create mode 100644 src/scripts/action/darkknight/ActionUnleash3621.cpp diff --git a/src/common/Common.h b/src/common/Common.h index ce64a197..38d174ac 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -972,6 +972,13 @@ namespace Sapphire::Common THREAT }; + enum CastType : uint8_t + { + SingleTarget = 1, + CircularAOE = 2, + RectangularAOE = 4, + }; + using PlayerStateFlagList = std::vector< PlayerStateFlag >; } diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index c049a97f..ca247060 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -45,7 +45,7 @@ foreach(_scriptDir ${children}) MODULE ${SCRIPT_BUILD_FILES} "${SCRIPT_INCLUDE_FILES}" - "${_scriptDir}/ScriptLoader.cpp" ) + "${_scriptDir}/ScriptLoader.cpp" action/darkknight/ActionUnleash3621.cpp action/darkknight/ActionUnleash3621.h) target_link_libraries( "script_${_name}" world ) diff --git a/src/scripts/action/darkknight/ActionHardSlash3617.cpp b/src/scripts/action/darkknight/ActionHardSlash3617.cpp index 6b582c04..77775263 100644 --- a/src/scripts/action/darkknight/ActionHardSlash3617.cpp +++ b/src/scripts/action/darkknight/ActionHardSlash3617.cpp @@ -14,7 +14,10 @@ public: void onExecute( Sapphire::Action::Action& action ) override { - + for( auto& chara : action.getHitActors() ) + { + chara->setHp( chara->getHp() - chara->getMaxHp() * 0.34f ); + } } }; diff --git a/src/scripts/action/darkknight/ActionUnleash3621.cpp b/src/scripts/action/darkknight/ActionUnleash3621.cpp new file mode 100644 index 00000000..b5004f66 --- /dev/null +++ b/src/scripts/action/darkknight/ActionUnleash3621.cpp @@ -0,0 +1,24 @@ +#include