瀏覽代碼

NetPacks: add BATTLE type to GiveBonus

Will work as battlefield effect of current battle.
Konstantin 2 年之前
父節點
當前提交
89fd742c1a
共有 2 個文件被更改,包括 5 次插入1 次删除
  1. 1 1
      lib/NetPacks.h
  2. 4 0
      lib/NetPacksLib.cpp

+ 1 - 1
lib/NetPacks.h

@@ -349,7 +349,7 @@ struct DLL_LINKAGE SetAvailableHeroes : public CPackForClient
 
 struct DLL_LINKAGE GiveBonus : public CPackForClient
 {
-	enum class ETarget : ui8 { HERO, PLAYER, TOWN };
+	enum class ETarget : ui8 { HERO, PLAYER, TOWN, BATTLE };
 	
 	GiveBonus(ETarget Who = ETarget::HERO)
 		:who(Who)

+ 4 - 0
lib/NetPacksLib.cpp

@@ -961,6 +961,10 @@ void GiveBonus::applyGs(CGameState *gs)
 	case ETarget::TOWN:
 		cbsn = gs->getTown(ObjectInstanceID(id));
 		break;
+	case ETarget::BATTLE:
+		assert(Bonus::OneBattle(&bonus));
+		cbsn = dynamic_cast<CBonusSystemNode*>(gs->curB.get());
+		break;
 	}
 
 	assert(cbsn);