OSDN Git Service

[Refactor] #2212 Defined the class PlayerConfusion (no implementation yet)
authorHourier <66951241+Hourier@users.noreply.github.com>
Wed, 23 Feb 2022 11:56:58 +0000 (20:56 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sat, 26 Feb 2022 01:11:55 +0000 (10:11 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/timed-effect/player-confusion.cpp [new file with mode: 0644]
src/timed-effect/player-confusion.h [new file with mode: 0644]
src/timed-effect/timed-effects.cpp
src/timed-effect/timed-effects.h

index e1efbd5..5c34a41 100644 (file)
     <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-confusion.cpp" />\r
     <ClCompile Include="..\..\src\timed-effect\player-cut.cpp" />\r
     <ClCompile Include="..\..\src\timed-effect\player-stun.cpp" />\r
     <ClCompile Include="..\..\src\timed-effect\timed-effects.cpp" />\r
     <ClInclude Include="..\..\src\target\target-setter.h" />\r
     <ClInclude Include="..\..\src\target\target-types.h" />\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-stun.h" />\r
     <ClInclude Include="..\..\src\timed-effect\timed-effects.h" />\r
index 987c5cf..3fd8ae0 100644 (file)
     <ClCompile Include="..\..\src\monster-race\race-resistance-mask.cpp">\r
       <Filter>monster-race</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\..\src\timed-effect\player-confusion.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-resistance-mask.h">\r
       <Filter>monster-race</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\..\src\timed-effect\player-confusion.h">\r
+      <Filter>timed-effect</Filter>\r
+    </ClInclude>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <None Include="..\..\src\wall.bmp" />\r
index f030f9e..9f9f154 100644 (file)
@@ -911,6 +911,7 @@ hengband_SOURCES = \
        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-confusion.cpp timed-effect/player-confusion.h \
        timed-effect/player-cut.cpp timed-effect/player-cut.h \
        timed-effect/player-stun.cpp timed-effect/player-stun.h \
        timed-effect/timed-effects.cpp timed-effect/timed-effects.h \
diff --git a/src/timed-effect/player-confusion.cpp b/src/timed-effect/player-confusion.cpp
new file mode 100644 (file)
index 0000000..f1e4df2
--- /dev/null
@@ -0,0 +1,21 @@
+#include "timed-effect/player-confusion.h"
+
+short PlayerConfusion::current() const
+{
+    return this->confusion;
+}
+
+bool PlayerConfusion::is_confused() const
+{
+    return this->confusion > 0;
+}
+
+void PlayerConfusion::set(short value)
+{
+    this->confusion = value;
+}
+
+void PlayerConfusion::reset()
+{
+    this->set(0);
+}
diff --git a/src/timed-effect/player-confusion.h b/src/timed-effect/player-confusion.h
new file mode 100644 (file)
index 0000000..c4512ea
--- /dev/null
@@ -0,0 +1,14 @@
+#pragma once
+
+class PlayerConfusion {
+public:
+    PlayerConfusion() = default;
+
+    short current() const;
+    bool is_confused() const;
+    void set(short value);
+    void reset();
+
+private:
+    short confusion = 0;
+};
index 4024e9d..67848d4 100644 (file)
@@ -1,10 +1,12 @@
 #include "timed-effect/timed-effects.h"
+#include "timed-effect/player-confusion.h"
 #include "timed-effect/player-cut.h"
 #include "timed-effect/player-stun.h"
 
 TimedEffects::TimedEffects()
     : player_cut(std::make_shared<PlayerCut>())
     , player_stun(std::make_shared<PlayerStun>())
+    , player_confusion(std::make_shared<PlayerConfusion>())
 {
 }
 
@@ -17,3 +19,8 @@ std::shared_ptr<PlayerStun> TimedEffects::stun() const
 {
     return this->player_stun;
 }
+
+std::shared_ptr<PlayerConfusion> TimedEffects::confusion() const
+{
+    return this->player_confusion;
+}
index e8ba554..f58f909 100644 (file)
@@ -2,6 +2,7 @@
 
 #include <memory>
 
+class PlayerConfusion;
 class PlayerCut;
 class PlayerStun;
 class TimedEffects {
@@ -11,8 +12,10 @@ public:
 
     std::shared_ptr<PlayerCut> cut() const;
     std::shared_ptr<PlayerStun> stun() const;
+    std::shared_ptr<PlayerConfusion> confusion() const;
 
 private:
     std::shared_ptr<PlayerCut> player_cut;
     std::shared_ptr<PlayerStun> player_stun;
+    std::shared_ptr<PlayerConfusion> player_confusion;
 };