<ClCompile Include="..\..\src\target\target-getter.cpp" />\r
<ClCompile Include="..\..\src\target\target-preparation.cpp" />\r
<ClCompile Include="..\..\src\target\target-setter.cpp" />\r
+ <ClCompile Include="..\..\src\timed-effect\player-acceleration.cpp" />\r
<ClCompile Include="..\..\src\timed-effect\player-confusion.cpp" />\r
<ClCompile Include="..\..\src\timed-effect\player-cut.cpp" />\r
<ClCompile Include="..\..\src\timed-effect\player-fear.cpp" />\r
<ClInclude Include="..\..\src\term\screen-processor.h" />\r
<ClInclude Include="..\..\src\timed-effect\player-confusion.h" />\r
<ClInclude Include="..\..\src\timed-effect\player-cut.h" />\r
+ <ClInclude Include="..\..\src\timed-effect\player-acceleration.h" />\r
<ClInclude Include="..\..\src\timed-effect\player-fear.h" />\r
<ClInclude Include="..\..\src\timed-effect\player-hallucination.h" />\r
<ClInclude Include="..\..\src\timed-effect\player-paralysis.h" />\r
<ClCompile Include="..\..\src\monster-race\race-feature-mask.cpp">\r
<Filter>monster-race</Filter>\r
</ClCompile>\r
+ <ClCompile Include="..\..\src\timed-effect\player-acceleration.cpp">\r
+ <Filter>timed-effect</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="..\..\src\combat\shoot.h">\r
<ClInclude Include="..\..\src\monster-race\race-feature-mask.h">\r
<Filter>monster-race</Filter>\r
</ClInclude>\r
+ <ClInclude Include="..\..\src\timed-effect\player-acceleration.h">\r
+ <Filter>timed-effect</Filter>\r
+ </ClInclude>\r
</ItemGroup>\r
<ItemGroup>\r
<None Include="..\..\src\wall.bmp" />\r
term/z-term.cpp term/z-term.h term/z-util.cpp term/z-util.h \
term/z-virt.cpp term/z-virt.h \
\
+ timed-effect/player-acceleration.cpp timed-effect/player-acceleration.h \
timed-effect/player-confusion.cpp timed-effect/player-confusion.h \
timed-effect/player-cut.cpp timed-effect/player-cut.h \
timed-effect/player-fear.cpp timed-effect/player-fear.h \
--- /dev/null
+#include "timed-effect/player-acceleration.h"
+
+short PlayerAcceleration::current() const
+{
+ return this->acceleration;
+}
+
+bool PlayerAcceleration::is_fast() const
+{
+ return this->acceleration > 0;
+}
+
+void PlayerAcceleration::set(short value)
+{
+ this->acceleration = value;
+}
+
+void PlayerAcceleration::add(short value)
+{
+ this->acceleration += value;
+}
+
+void PlayerAcceleration::reset()
+{
+ this->set(0);
+}
--- /dev/null
+#pragma once
+
+class PlayerAcceleration {
+public:
+ PlayerAcceleration() = default;
+
+ short current() const;
+ bool is_fast() const;
+ void set(short value);
+ void add(short value); /*!< 減産も負値を引数に入れれば可能 */
+ void reset();
+
+private:
+ short acceleration = 0;
+};
#include "timed-effect/timed-effects.h"
+#include "timed-effect/player-acceleration.h"
#include "timed-effect/player-confusion.h"
#include "timed-effect/player-cut.h"
#include "timed-effect/player-fear.h"
, player_hallucination(std::make_shared<PlayerHallucination>())
, player_paralysis(std::make_shared<PlayerParalysis>())
, player_stun(std::make_shared<PlayerStun>())
+ , player_acceleration(std::make_shared<PlayerAcceleration>())
{
}
{
return this->player_stun;
}
+
+std::shared_ptr<PlayerAcceleration> TimedEffects::acceleration() const
+{
+ return this->player_acceleration;
+}
#include <memory>
+class PlayerAcceleration;
class PlayerConfusion;
class PlayerFear;
class PlayerHallucination;
std::shared_ptr<PlayerHallucination> hallucination() const;
std::shared_ptr<PlayerParalysis> paralysis() const;
std::shared_ptr<PlayerStun> stun() const;
+ std::shared_ptr<PlayerAcceleration> acceleration() const;
private:
std::shared_ptr<PlayerConfusion> player_confusion;
std::shared_ptr<PlayerHallucination> player_hallucination;
std::shared_ptr<PlayerParalysis> player_paralysis;
std::shared_ptr<PlayerStun> player_stun;
+ std::shared_ptr<PlayerAcceleration> player_acceleration;
};