public Character() { this.InitiativeTiebreaker = rand.Next(); monster = Monster.BlankMonster(); isNotSet = true; monster.PropertyChanged += Monster_PropertyChanged; HP = monster.HP; MaxHP = monster.HP; initiativeFollowers = new ObservableCollection <Character>(); initiativeFollowers.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(initiativeFollowers_CollectionChanged); resources = new ObservableCollection <ActiveResource>(); }
public static RulesSystem?MonsterSystem(BaseMonster monster) { switch (monster) { case PF2Monster _: return(RulesSystem.PF2); case Monster _: return(RulesSystem.PF1); default: return(null); } }
public Character(Monster monster, HPMode mode) : this() { this.monster = (Monster)monster.Clone(); this.name = monster.Name; this.hp = monster.GetStartingHP(mode); this.maxHP = this.hp; this.isMonster = true; this.monster.ApplyDefaultConditions(); this.monster.PropertyChanged += Monster_PropertyChanged; Resources = this.monster.TResources; LoadResources(); }
public void BaseMonsterCopy(BaseMonster m) { CR = m.cr; Alignment = m.alignment; Size = m.size; HP = m.hp; Speed = m.speed; Init = m.init; Languages = m.languages; HP_Mods = m.hp_mods; Fort = m.fort; Ref = m.reflex; Will = m.will; Resist = m.resist; Weaknesses = m.weaknesses; Immune = m.immune; Source = m.source; }
public void BaseMonsterClone(BaseMonster m) { m.name = name; m.cr = cr; m.alignment = alignment; m.size = size; m.hp = hp; m.speed = speed; m.init = init; m.languages = languages; m.hp_mods = hp_mods; m.fort = fort; m.reflex = reflex; m.will = will; m.resist = resist; m.weaknesses = weaknesses; m.immune = immune; m.source = source; }
private void SetMonster(BaseMonster value) { if (monster != value) { RulesSystem?oldSystem = MonsterSystem(monster); RulesSystem?newSystem = MonsterSystem(value); bool replacement = !isNotSet; if (monster != null) { monster.PropertyChanged -= Monster_PropertyChanged; monster.ActiveConditions.CollectionChanged -= ActiveConditions_CollectionChanged; } this.monster = value; if (monster != null) { monster.PropertyChanged += Monster_PropertyChanged; monster.ActiveConditions.CollectionChanged += ActiveConditions_CollectionChanged; } if (oldSystem != null) { NotifyMonsterSystem(oldSystem.Value); } if (newSystem != null && (oldSystem == null || oldSystem.Value != newSystem.Value)) { NotifyMonsterSystem(newSystem.Value); } if (replacement && monster != null) { MaxHP = monster.HP; monster.Notify("Init"); } isNotSet = false; } }