// 執行 public override void Execute() { // 建立Soldier ICharacterFactory Factory = PBDFactory.GetCharacterFactory(); ISoldier Soldier = Factory.CreateSoldier(m_emSoldier, m_emWeapon, m_Lv, m_Position); // 依機率產生前輟能力 int Rate = UnityEngine.Random.Range(0, 100); int AttrID = 0; if (Rate > 90) { AttrID = 13; } else if (Rate > 80) { AttrID = 12; } else if (Rate > 60) { AttrID = 11; } else { return; } // 加上字首能力 //Debug.Log("加上前輟能力:"+AttrID); IAttrFactory AttrFactory = PBDFactory.GetAttrFactory(); SoldierAttr PreAttr = AttrFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Prefix, AttrID, Soldier.GetSoldierValue()); Soldier.SetCharacterAttr(PreAttr); }
// Soldier能力 void UnitTest_SoldierValue() { ICharacterFactory Factory = PBDFactory.GetCharacterFactory(); // 建立Soldier ISoldier theSoldier = Factory.CreateSoldier(ENUM_Soldier.Rookie, ENUM_Weapon.Gun, 1, new Vector3(0, 0, 0)); // 加上前輟能力 IAttrFactory ValueFactory = PBDFactory.GetAttrFactory(); SoldierAttr PreAttr = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Prefix, 11, theSoldier.GetSoldierValue()); theSoldier.SetCharacterAttr(PreAttr); // 加上後輟能力 SoldierAttr SufValue = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Suffix, 21, theSoldier.GetSoldierValue()); theSoldier.SetCharacterAttr(SufValue); // 建立Enemy IEnemy theEnemy = Factory.CreateEnemy(ENUM_Enemy.Elf, ENUM_Weapon.Rocket, new Vector3(0, 0, 0), new Vector3(100, 0, 0)); // 建立俘兵 ISoldier theCaptive = new SoldierCaptive(theEnemy); // 加上前輟能力 PreAttr = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Prefix, 11, theCaptive.GetSoldierValue()); theCaptive.SetCharacterAttr(PreAttr); // 加上後輟能力 SufValue = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Suffix, 21, theCaptive.GetSoldierValue()); theCaptive.SetCharacterAttr(SufValue); // Soldier打Enemy //theSoldier.Attack( theEnemy ); // Enemy打Soldier //theEnemy.Attack( theSoldier ); }