protected override IHpBarBase CreateHpBar(HPType info) { string loadPath = info == HPType.People ? "prefab/HpBar/CommonHpBar" : "prefab/HpBar/MonsterHpBar"; var obj = ResourceMgr.Ins.LoadObject <GameObject>(loadPath); obj = Object.Instantiate(obj); // CommonHpBar target; // switch (info) // { // case HPType.Monster: // target = obj.TAddomponent<MonsterHpBar>(); // break; // case HPType.People: // target = obj.TAddomponent<CommonHpBar>(); // break; // case HPType.Boss: // target = obj.TAddomponent<BossHpBar>(); // break; // default: // target = obj.TAddomponent<CommonHpBar>(); // break; // } // return obj == null ? null : target; return(null); }
/// <summary> /// Instantiates health bar of given type /// </summary> /// <param name="hpType">Health type</param> /// <returns>Reference to progressable</returns> private ProgressableBehaviour InstantiateHealthBar(HPType hpType) { var instance = Instantiate(progressablePrefab, healthBarsContainer); var progressable = instance.GetComponent <ProgressableBehaviour>(); if (progressable is IHPDataAdjustable hpAdjustable) { hpAdjustable.SetHealthData(hpDataManager[hpType]); } return(progressable); }
protected HPType GetHpOwnerType(object owner) { HPType hpType = HPType.People; // if (owner is CPlayer) // { // hpType = HPType.People; // } // else if (owner is Monster) // { // hpType = PassiveMgr.Ins.IsBoss(owner) ? HPType.Boss : HPType.Monster; // } // else // { // hpType = HPType.People; // } return(hpType); }
/// <summary> /// 创建血条 /// </summary> public void CreateHp(object owner) { HPType hpType = GetHpOwnerType(owner); if (!TryGetValue(owner, out var hpBar)) { if (hpCache.ContainsKey(hpType)) { var cache = hpCache[hpType]; hpBar = cache.Count > 0 ? cache.Dequeue() : CreateHpBar(hpType); } else { hpBar = CreateHpBar(hpType); } } hpBar.Init(owner, hpType); hpData[owner] = hpBar; }
public static void SetCreatureHitPoints(NWN2CreatureTemplate creature, HPType hpType) { // Check for blacklisting. if (creature.Variables.GetVariable("ABP_SETHP_OVERRIDE").ValueInt > 0) hpType = (CreatureHelper.HPType)creature.Variables.GetVariable("ABP_SETHP_OVERRIDE").ValueInt; if (hpType == CreatureHelper.HPType.Ignore) return; // Find the new HP. short newHP = 0; switch (hpType) { case CreatureHelper.HPType.PenAndPaper: newHP = CreatureHelper.GetHitPointsPNP(creature); break; case CreatureHelper.HPType.Maximum: newHP = CreatureHelper.GetHitPointsMax(creature); break; default: return; } // And set it. creature.BaseHitPoints = newHP; creature.CurrentHitPoints = newHP; creature.CharsheetHitPoints = newHP; }
protected abstract IHpBarBase CreateHpBar(HPType info);
public HPDisplayData this[HPType hpType] => hpType.ArrayValueIn(values);
public HitPoints(HPType type, float value) { this.type = type; this.value = value; }
public HitPoints(HitPoints other) { type = other.type; value = other.value; }