示例#1
0
    protected Character(FormationUnitSaveData unitSaveData, MonsterData monsterData) : this(monsterData)
    {
        BuffInfo      = unitSaveData.Buffs;
        StatusEffects = unitSaveData.Statuses;

        this[AttributeType.HitPoints, true].CurrentValue = unitSaveData.CurrentHp;
    }
示例#2
0
 public virtual void UpdateSaveData(FormationUnitSaveData saveUnitData)
 {
     saveUnitData.IsHero    = false;
     saveUnitData.Class     = Class;
     saveUnitData.Name      = Name;
     saveUnitData.CurrentHp = CurrentHealth;
     saveUnitData.Buffs     = BuffInfo;
     saveUnitData.Statuses  = StatusEffects;
 }
示例#3
0
 public override void UpdateSaveData(FormationUnitSaveData saveUnitData)
 {
     saveUnitData.IsHero    = false;
     saveUnitData.Class     = Class;
     saveUnitData.Name      = Name;
     saveUnitData.CurrentHp = Health.CurrentValue;
     saveUnitData.Buffs     = buffInfo;
     saveUnitData.Statuses  = statusEffects;
 }
 public void UpdateFormation(BattleFormation formation)
 {
     UnitData.Clear();
     foreach (FormationUnit unit in formation.Party.Units)
     {
         var newFormationUnitData = new FormationUnitSaveData();
         newFormationUnitData.UpdateFromUnit(unit);
         UnitData.Add(newFormationUnitData);
     }
 }
示例#5
0
 public void UpdateFormation(BattleFormation formation)
 {
     unitData.Clear();
     for (int i = 0; i < formation.party.Units.Count; i++)
     {
         var newFormationUnitData = new FormationUnitSaveData();
         newFormationUnitData.UpdateFromUnit(formation.party.Units[i]);
         unitData.Add(newFormationUnitData);
     }
 }
示例#6
0
 public override void UpdateSaveData(FormationUnitSaveData saveUnitData)
 {
     saveUnitData.IsHero    = true;
     saveUnitData.RosterId  = RosterId;
     saveUnitData.Class     = Class;
     saveUnitData.Name      = Name;
     saveUnitData.CurrentHp = CurrentHealth;
     saveUnitData.Buffs     = BuffInfo;
     saveUnitData.Statuses  = StatusEffects;
 }
    public void UpdateFromBattleGround(BattleGround battleGround)
    {
        RoundNumber = battleGround.Round.RoundNumber;
        RoundStatus = battleGround.RoundStatus;
        TurnType    = battleGround.Round.TurnType;
        TurnStatus  = battleGround.TurnStatus;

        HeroAction       = battleGround.Round.HeroAction;
        SelectedUnitId   = battleGround.Round.SelectedUnit == null ? -1 : battleGround.Round.SelectedUnit.CombatInfo.CombatId;
        SelectedTargetId = battleGround.Round.SelectedTarget == null ? -1 : battleGround.Round.SelectedTarget.CombatInfo.CombatId;

        BattleStatus   = battleGround.BattleStatus;
        SurpriseStatus = battleGround.SurpriseStatus;

        StallingRoundNumber = battleGround.StallingRoundNumber;

        OrderedUnitsCombatIds.Clear();
        for (int i = 0; i < battleGround.Round.OrderedUnits.Count; i++)
        {
            OrderedUnitsCombatIds.Add(battleGround.Round.OrderedUnits[i].CombatInfo.CombatId);
        }

        CombatIds.Clear();
        CombatIds.AddRange(battleGround.CombatIds);
        Companions.Clear();
        for (int i = 0; i < battleGround.Companions.Count; i++)
        {
            Companions.Add(battleGround.Companions[i].GetHashCode());
        }

        Captures.Clear();
        RemovedUnits.Clear();
        for (int i = 0; i < battleGround.Captures.Count; i++)
        {
            Captures.Add(battleGround.Captures[i].GetHashCode());
            if (battleGround.Captures[i].RemoveFromParty)
            {
                var newRemovedUnitData = new FormationUnitSaveData();
                newRemovedUnitData.UpdateFromUnit(battleGround.Captures[i].PrisonerUnit);
                RemovedUnits.Add(newRemovedUnitData);
            }
        }

        Controls.Clear();
        for (int i = 0; i < battleGround.Controls.Count; i++)
        {
            Controls.Add(battleGround.Controls[i].GetHashCode());
        }

        BattleLoot    = battleGround.BattleLoot;
        LastDamaged   = battleGround.LastDamaged;
        LastSkillUsed = battleGround.LastSkillUsed == null ? "" : battleGround.LastSkillUsed;

        MonsterFormation.UpdateFormation(battleGround.MonsterFormation);
    }
    public void ReadFormationData(BinaryReader br)
    {
        int unitDataCount = br.ReadInt32();

        UnitData.Clear();
        for (int i = 0; i < unitDataCount; i++)
        {
            var newFormationUnitData = new FormationUnitSaveData();
            newFormationUnitData.ReadFormationUnitData(br);
            UnitData.Add(newFormationUnitData);
        }
    }
示例#9
0
    public void Initialize(Character character, FormationUnitSaveData saveData)
    {
        EventQueue    = new List <EffectEvent>();
        CombatInfo    = saveData.CombatInfo;
        RectTransform = GetComponent <RectTransform>();
        unitAnimator  = GetComponentInChildren <UnitAnimator>();
        Character     = character;
        if (Character.IsMonster == false)
        {
            Character.LoadStatusEffects(saveData.Statuses);
        }
        Rank          = saveData.Rank;
        Team          = saveData.Team;
        OriginalClass = saveData.OriginalClass;

        Character.ApplyAllBuffRules(RaidSceneManager.Rules.GetIdleUnitRules(this));
    }
示例#10
0
 public Monster(FormationUnitSaveData unitSaveData) :
     base(unitSaveData, DarkestDungeonManager.Data.Monsters[unitSaveData.Name])
 {
     Data  = DarkestDungeonManager.Data.Monsters[unitSaveData.Name];
     Brain = DarkestDungeonManager.Data.Brains[Data.MonsterBrainId];
 }
    public void ReadBattlegroundData(BinaryReader br)
    {
        RoundNumber = br.ReadInt32();

        RoundStatus    = (RoundStatus)br.ReadInt32();
        TurnType       = (TurnType)br.ReadInt32();
        TurnStatus     = (TurnStatus)br.ReadInt32();
        HeroAction     = (HeroTurnAction)br.ReadInt32();
        BattleStatus   = (BattleStatus)br.ReadInt32();
        SurpriseStatus = (SurpriseStatus)br.ReadInt32();

        StallingRoundNumber = br.ReadInt32();
        SelectedUnitId      = br.ReadInt32();
        SelectedTargetId    = br.ReadInt32();
        LastSkillUsed       = br.ReadString();

        int orderedUnitsCount = br.ReadInt32();

        OrderedUnitsCombatIds.Clear();
        for (int i = 0; i < orderedUnitsCount; i++)
        {
            OrderedUnitsCombatIds.Add(br.ReadInt32());
        }

        int combatIdsCount = br.ReadInt32();

        CombatIds.Clear();
        for (int i = 0; i < combatIdsCount; i++)
        {
            CombatIds.Add(br.ReadInt32());
        }

        int companionsCount = br.ReadInt32();

        Companions.Clear();
        for (int i = 0; i < companionsCount; i++)
        {
            Companions.Add(br.ReadInt32());
        }

        int capturesCount = br.ReadInt32();

        Captures.Clear();
        for (int i = 0; i < capturesCount; i++)
        {
            Captures.Add(br.ReadInt32());
        }

        int controlsCount = br.ReadInt32();

        Controls.Clear();
        for (int i = 0; i < controlsCount; i++)
        {
            Controls.Add(br.ReadInt32());
        }

        int lastDamagedCount = br.ReadInt32();

        LastDamaged.Clear();
        for (int i = 0; i < lastDamagedCount; i++)
        {
            LastDamaged.Add(br.ReadString());
        }

        int battleLootCount = br.ReadInt32();

        BattleLoot.Clear();
        for (int i = 0; i < battleLootCount; i++)
        {
            var newBattleLoot = new LootDefinition()
            {
                Code  = br.ReadString(),
                Count = br.ReadInt32(),
            };
            BattleLoot.Add(newBattleLoot);
        }

        int removedUnitsCount = br.ReadInt32();

        RemovedUnits.Clear();
        for (int i = 0; i < removedUnitsCount; i++)
        {
            var newFormationUnitData = new FormationUnitSaveData();
            newFormationUnitData.ReadFormationUnitData(br);
            RemovedUnits.Add(newFormationUnitData);
        }

        MonsterFormation.ReadFormationData(br);
    }