private static ICharacter GetAttackerCharacter(IGameObjectWithProto damageSource, out IProtoSkill protoSkill) { switch (damageSource) { case ICharacter character: protoSkill = !character.IsNpc ? character.GetPrivateState <PlayerCharacterPrivateState>().WeaponState .ProtoWeapon?.WeaponSkillProto : null; return(character); case { } when damageSource.ProtoGameObject is IProtoStatusEffect: var statusEffectPublicState = damageSource.GetPublicState <StatusEffectPublicState>(); protoSkill = statusEffectPublicState.ServerStatusEffectWasAddedByCharacterWeaponSkill; return(statusEffectPublicState.ServerStatusEffectWasAddedByCharacter); default: protoSkill = null; return(null); } }
public ProtoSkillViewModel([NotNull] IProtoSkill skill) : base(skill) { Description = skill.Description; }