예제 #1
0
        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);
            }
        }
예제 #2
0
 public ProtoSkillViewModel([NotNull] IProtoSkill skill) : base(skill)
 {
     Description = skill.Description;
 }