Ejemplo n.º 1
0
        public void OnHitDamage(BaseNpc Attacker, string SourceName, float Damage)
        {
            if (Actor.IsFsmState(FsmStateName.Die))
            {
                return;
            }

            var RealDamage = AddAttr(NpcAttrIndex.Hp, -Damage);

            EventManager.Send(new NpcDamageEvent(this, Attacker?.ID ?? 0, SourceName, Mathf.Abs(RealDamage), Mathf.Abs(Damage)));
        }
Ejemplo n.º 2
0
        public NpcBar(BaseNpc Master, Vector2 Position, float Scale = 1.0f)
        {
            Master_ = Master;

            Root_ = new GameObject("Bar").transform;
            Root_.transform.SetParent(Master.FrontLayer, false);
            Root_.transform.localPosition = Position;
            Root_.transform.localScale    = new Vector3(Scale, Scale, Scale);

            HpBarObj_ = AssetManager.CreatePrefabSync(new AssetUri("prefabs/hpbar.prefab"));
            HpBarObj_.transform.SetParent(Root_, false);
            MpBarObj_ = AssetManager.CreatePrefabSync(new AssetUri("prefabs/mpbar.prefab"));
            MpBarObj_.transform.SetParent(Root_, false);
            MpBarObj_.transform.localPosition = new Vector3(0, -12, 0);

            HpBar_          = HpBarObj_.GetComponent <Slider>();
            HpBar_.minValue = 0;
            MpBar_          = MpBarObj_.GetComponent <Slider>();
            MpBar_.minValue = 0;
        }
Ejemplo n.º 3
0
        public NpcAttribute(BaseNpc Master, float[] Attrs)
        {
            Master_  = Master;
            Value_   = new float[(int)NpcAttrIndex.Count];
            Percent_ = new float[(int)NpcAttrIndex.Count];
            Base_    = new float[(int)NpcAttrIndex.Count];
            for (var Index = 0; Index < Value_.Length; ++Index)
            {
                if (Index >= Attrs.Length)
                {
                    Value_[Index] = 0;
                }
                else
                {
                    Value_[Index] = Attrs[Index];
                }

                Percent_[Index] = 1;
                Base_[Index]    = 0;
            }
        }