Example #1
0
 public MFatality(EFatality type, FatalityData data)
 {
     this._callbacks   = new List <Callback>();
     this._data        = data;
     this._fatalityMap = new Dictionary <Guid, AScript>();
     this._type        = type;
 }
Example #2
0
        private MFatality TryProcessSpellFatality(MAction a, FatalityData data)
        {
            switch (a.ActiveAbility.Data.MagicType)
            {
            case (EMagicType.Fighting): { return(new FightingFatality(data)); }

            default: return(null);
            }
        }
Example #3
0
        private MFatality TryProcessSpecificFatalityHelper(EFatality type, FatalityData data)
        {
            switch (type)
            {
            case (EFatality.Slime_Crush): { return(new SlimeCrushFatality(data)); }

            case (EFatality.Weenbow): { return(new WeenbowFatality(data)); }

            case (EFatality.Weenburster): { return(new WeenBursterFatality(data)); }

            default: return(null);
            }
        }
Example #4
0
        private MFatality TryProcessSpecificFatality(MAction a, FatalityData data)
        {
            var type = EFatality.None;

            if (a.Data.LWeapon)
            {
                if (a.Data.Source.Proxy.GetLWeapon() != null)
                {
                    type = a.Data.Source.Proxy.GetLWeapon().CustomFatality;
                }
            }
            else
            {
                if (a.Data.Source.Proxy.GetRWeapon() != null)
                {
                    type = a.Data.Source.Proxy.GetRWeapon().CustomFatality;
                }
            }
            return(this.TryProcessSpecificFatalityHelper(type, data));
        }
Example #5
0
        private MFatality TryProcessWeaponFatality(MAction a, FatalityData data)
        {
            switch (a.Data.Ability)
            {
            case (EAbility.Bite): { return(new BiteFatality(data)); }

            case (EAbility.Chop): { return(new ChopFatality(data)); }

            case (EAbility.Crush): { return(new CrushFatality(data)); }

            case (EAbility.Fire): { return(new FireFatality(data)); }

            case (EAbility.Great_Strike): { return(new GreatStrikeFatality(data)); }

            case (EAbility.Scatter): { return(new ScatterFatality(data)); }

            case (EAbility.Slash): { return(new SlashFatality(data)); }

            default: return(null);
            }
        }
Example #6
0
        public MFatality GetFatality(MAction a)
        {
            var data = new FatalityData();

            data.Action = a;
            data.Source = a.Data.Source;
            data.Target = a.Data.Target;
            foreach (var hit in a.Data.Hits)
            {
                if (hit.Data.IsFatality)
                {
                    data.FatalHits.Add(hit);
                }
                else
                {
                    data.NonFatalHits.Add(hit);
                }
            }
            var fatality = this.TryProcessSpecificFatality(a, data);

            if (fatality != null)
            {
                return(fatality);
            }
            fatality = this.TryProcessSpellFatality(a, data);
            if (fatality != null)
            {
                return(fatality);
            }
            fatality = this.TryProcessWeaponFatality(a, data);
            if (fatality != null)
            {
                return(fatality);
            }
            return(null);
        }