Page MenuHomeWildfire Games

[gameplay] let Iberians train spearmen in p1 from the barracks
Needs ReviewPublic

Authored by real_tabasco_sauce on Sun, May 5, 7:43 AM.

Details

Reviewers
None
Group Reviewers
Balancing
Summary

The iberians face a huge threat from melee cavalry and in particular spear cavalry rushes. The walls can prevent total disaster, but even still the Iberian player is typically left with no means to safely gather resources outside the walls.
The romans at least can train spear cavalry and use these in conjunction with wood line skirmishers.

The iberians spearmen access in p1 is a decent solution, and one with precedent (seleucids access pikemen in p1). It should be effective to avoid spear cav rushes being too strong vs iber, and leaves a window of opportunity for these rushes to deal appropriate damage.
If the iber player can leverage their walls well and get a barracks down in time, they should be well equipped to handle large spearcav rushes.

Test Plan

agree

Event Timeline

Vulcan added a comment.Sun, May 5, 7:43 AM

Build failure - The Moirai have given mortals hearts that can endure.

Debug:
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(23): error C2084: function 'CFsmEvent::CFsmEvent(unsigned int,void *)' already has a body [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(29): error C2600: 'CFsmEvent::~CFsmEvent': cannot define a compiler-generated special member function (must be declared in the class first) [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(33): error C2955: 'CFsm': use of class template requires template argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(35): error C2509: 'AddTransition': member function not declared in 'CFsm' [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(39): error C2955: 'CFsm': use of class template requires template argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(40): error C2509: 'SetFirstState': member function not declared in 'CFsm' [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(44): error C2955: 'CFsm': use of class template requires template argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(45): error C2509: 'SetCurrState': member function not declared in 'CFsm' [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(49): error C2955: 'CFsm': use of class template requires template argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(50): error C2509: 'IsFirstTime': member function not declared in 'CFsm' [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(54): error C2955: 'CFsm': use of class template requires template argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(55): error C2509: 'Update': member function not declared in 'CFsm' [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(81): error C2955: 'CFsm': use of class template requires template argument list [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]
     8>e:\jenkins\workspace\vs2015-differential\source\network\fsm.cpp(82): error C2509: 'IsDone': member function not declared in 'CFsm' [E:\Jenkins\workspace\vs2015-differential\build\workspaces\vs2017\network.vcxproj]

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/8805/display/redirect

Vulcan added a comment.Sun, May 5, 7:44 AM

Build failure - The Moirai have given mortals hearts that can endure.

builderr-debug-macos.txt
../../../source/network/FSM.cpp:22:12: error: redefinition of 'CFsmEvent'
CFsmEvent::CFsmEvent(unsigned int type, void* pParam)
           ^
../../../source/network/FSM.h:35:2: note: previous definition is here
        CFsmEvent(unsigned int type, void* pParam) :
        ^
../../../source/network/FSM.cpp:28:12: error: definition of implicitly declared destructor
CFsmEvent::~CFsmEvent()
           ^
../../../source/network/FSM.cpp:33:6: error: 'CFsm' is not a class, namespace, or enumeration
void CFsm::AddTransition(unsigned int state, unsigned int eventType, unsigned int nextState,
     ^
../../../source/network/FSM.h:67:7: note: 'CFsm' declared here
class CFsm
      ^
../../../source/network/FSM.cpp:34:2: error: unknown type name 'Action'
        Action* pAction /* = nullptr */, void* pContext /* = nullptr*/)
        ^
../../../source/network/FSM.cpp:39:6: error: 'CFsm' is not a class, namespace, or enumeration
void CFsm::SetFirstState(unsigned int firstState)
     ^
../../../source/network/FSM.h:67:7: note: 'CFsm' declared here
class CFsm
      ^
../../../source/network/FSM.cpp:44:6: error: 'CFsm' is not a class, namespace, or enumeration
void CFsm::SetCurrState(unsigned int state)
     ^
../../../source/network/FSM.h:67:7: note: 'CFsm' declared here
class CFsm
      ^
../../../source/network/FSM.cpp:49:6: error: 'CFsm' is not a class, namespace, or enumeration
bool CFsm::IsFirstTime() const
     ^
../../../source/network/FSM.h:67:7: note: 'CFsm' declared here
class CFsm
      ^
../../../source/network/FSM.cpp:54:6: error: 'CFsm' is not a class, namespace, or enumeration
bool CFsm::Update(unsigned int eventType, void* pEventParam)
     ^
../../../source/network/FSM.h:67:7: note: 'CFsm' declared here
class CFsm
      ^
../../../source/network/FSM.cpp:81:6: error: 'CFsm' is not a class, namespace, or enumeration
bool CFsm::IsDone() const
     ^
../../../source/network/FSM.h:67:7: note: 'CFsm' declared here
class CFsm
      ^
9 errors generated.
make[1]: *** [obj/network_Debug/FSM.o] Error 1
make: *** [network] Error 2

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/7725/display/redirect

real_tabasco_sauce requested review of this revision.Sun, May 5, 7:53 AM

This doesn’t make a ton of sense to me. This would make more sense for Rome.

Iber has walls. Iber also can make skirm cheaper in p1. These are two huge advantages iber has to defend against rushes (and Rome doesn’t).

Barracks typically go up too late to defend a melee cav rush, so not sure your fix would even fix it.

I see your point re Rome having spear cav but that doest’t help when you are playing catchup and if you preemptively try to do it (without nearby hunt) then you really slow yourself down

real_tabasco_sauce added a comment.EditedSun, May 5, 4:16 PM

Well my reasoning is listed in the patch summary, so no need to revisit my points. Its just a complaint I heard from 3 different iber players so I thought I would make a quick patch.
In a27 the romans will get a pretty significant economy advantage and I think they should have a bit of vulnerability.
At the same time tho, increased wall garrison space will make walls more useful for defense, so maybe its best left as is.

Well my reasoning is listed in the patch summary, so no need to revisit my points. Its just a complaint I heard from 3 different iber players so I thought I would make a quick patch.
In a27 the romans will get a pretty significant economy advantage and I think they should have a bit of vulnerability.
At the same time tho, increased wall garrison space will make walls more useful for defense, so maybe its best left as is.

Yeah, it’s not so much that I disagree with the problem you identified. It’s that I think Iber is significantly better off than Rome at dealing with that problem.

But you’re right—I didn’t consider Roman buffs for a27.

I could go either way with this patch