public MFatality(EFatality type, FatalityData data) { this._callbacks = new List <Callback>(); this._data = data; this._fatalityMap = new Dictionary <Guid, AScript>(); this._type = type; }
private MFatality TryProcessSpellFatality(MAction a, FatalityData data) { switch (a.ActiveAbility.Data.MagicType) { case (EMagicType.Fighting): { return(new FightingFatality(data)); } default: return(null); } }
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); } }
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)); }
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); } }
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); }