protected override void InitBrain() { if (Prowling) { fBrain = new BeastBrain(this); return; } Brain = new LeaderBrain(this); }
private void OnBtnTeach(object sender) { int idx = fMercenariesList.SelIndex; LeaderBrain party = (LeaderBrain)GlobalVars.nwrGame.Player.Brain; NWCreature member = (NWCreature)party.GetMember(idx + 1); if (member != null) { GlobalVars.nwrWin.ShowTeachWin(member); } }
private void OnBtnExchange(object sender) { int idx = fMercenariesList.SelIndex; LeaderBrain party = (LeaderBrain)GlobalVars.nwrGame.Player.Brain; NWCreature member = party.Members[idx + 1]; if (member != null) { GlobalVars.nwrWin.ShowExchangeWin(member); } }
public void ClearMercenaries() { if (fBrain is LeaderBrain) { LeaderBrain leader = ((LeaderBrain)fBrain); for (int i = leader.Members.Count - 1; i >= 1; i--) { CreatureEntity member = leader.Members[i]; ((NWCreature)member).IsMercenary = false; } } }
private void UpdateView() { fMercenariesList.Items.BeginUpdate(); fMercenariesList.Items.Clear(); LeaderBrain party = (LeaderBrain)GlobalVars.nwrGame.Player.Brain; int num = party.MembersCount; for (int i = 1; i < num; i++) { NWCreature j = (NWCreature)party.GetMember(i); fMercenariesList.Items.Add(j.Name, j); } fMercenariesList.Items.EndUpdate(); }
public override void TransferTo(int layerID, int fX, int fY, int pX, int pY, ExtRect area, bool obligatory, bool controlled) { try { NWField field = Space.GetField(layerID, fX, fY); bool withoutParty = (field.LandID == GlobalVars.Land_Crossroads) || Sail; bool globalMove = (LayerID != layerID || Field.X != fX || Field.Y != fY); bool partyMove = (globalMove && controlled && !withoutParty); base.TransferTo(layerID, fX, fY, pX, pY, area, obligatory, controlled); /*if (globalMove) { * // ??? * }*/ if (partyMove) { try { LeaderBrain party = (LeaderBrain)fBrain; int num = party.Members.Count; for (int i = 1; i < num; i++) { NWCreature member = party.Members[i]; ExtPoint pt = member.GetNearestPlace(Location, 4, true); if (!pt.IsEmpty) { member.TransferTo(layerID, fX, fY, pt.X, pt.Y, area, obligatory, true); } else { Logger.Write("Player.transferTo().transferParty().getNearestPlace() failed"); } } } catch (Exception ex) { Logger.Write("Player.transferTo().transferParty(): " + ex.Message); } } } catch (Exception ex) { Logger.Write("Player.transferTo(): " + ex.Message); throw ex; } }
public void TeachDiscipline(NWCreature teacher, int teachableIndex, int curLev) { LeaderBrain party = (LeaderBrain)fBrain; int id = StaticData.dbTeachable[teachableIndex].Id; TeachableKind kind = StaticData.dbTeachable[teachableIndex].Kind; int price = (int)Space.GetTeachablePrice(teachableIndex, curLev); SubMoney(price); teacher.AddMoney(price); switch (kind) { case TeachableKind.Ability: { SetAbility((AbilityID)id, curLev + 1); int num2 = party.Members.Count; for (int i = 1; i < num2; i++) { NWCreature j = party.Members[i]; j.SetAbility((AbilityID)id, curLev + 1); } } break; case TeachableKind.Skill: { SetSkill((SkillID)id, curLev + 1); int num = party.Members.Count; for (int i = 1; i < num; i++) { NWCreature j = party.Members[i]; j.SetSkill((SkillID)id, curLev + 1); } } break; } }