コード例 #1
0
    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);
    }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
    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);
    }
コード例 #4
0
    /// <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;
    }
コード例 #5
0
        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;
        }
コード例 #6
0
 protected abstract IHpBarBase CreateHpBar(HPType info);
コード例 #7
0
ファイル: HPDataManager.cs プロジェクト: elumixor/C87B
 public HPDisplayData this[HPType hpType] => hpType.ArrayValueIn(values);
コード例 #8
0
 public HitPoints(HPType type, float value)
 {
     this.type  = type;
     this.value = value;
 }
コード例 #9
0
 public HitPoints(HitPoints other)
 {
     type  = other.type;
     value = other.value;
 }