// Use this for initialization
 void Start()
 {
     component = GetComponent<CharPosEffComp>();
     stateComponent = GetComponent<CharAnimEffComp>();
     stateEff = GetComponent<CharAnimEff>();
     statusComponent = GetComponent<ActorStatusComponent>();
     charController = GetComponent<CharacterController>();
 }
 void HandleComponentHasChangedStatus(bool isBase, ActorStatusComponent.StatusType type, float oldVal, float newVal)
 {
     if(!isBase){
         if(type == ActorStatusComponent.StatusType.HP){
             pendingSend = true;
             sendHP = true;
         }
     }
 }
    public void Assign(ActorStatusComponent values)
    {
        Type = values.Type;
        BaseMaxHP = values.BaseMaxHP;
        BaseHP = values.BaseHP;
        BaseMoveSpeed = values.BaseMoveSpeed;
        BaseAttackSpeed = values.BaseAttackSpeed;
        BaseDamage = values.BaseDamage;

        MaxHPModifiers = values.MaxHPModifiers;
        HPModifiers = values.HPModifiers;
        MoveSpeedModifiers = values.MoveSpeedModifiers;
        AttackSpeedModifiers = values.AttackSpeedModifiers;
        DamageModifiers = values.DamageModifiers;

        MaxHP = values.MaxHP;
        HP = values.HP;
        MoveSpeed = values.MoveSpeed;
        AttackSpeed = values.AttackSpeed;
        Damage = values.Damage;
    }
 // Use this for initialization
 void Awake()
 {
     component = GetComponent<ActorStatusComponent>();
 }
 void Start()
 {
     statusComp = GetComponent<ActorStatusComponent>();
 }
 private float GetModifiedStatusf(ActorStatusComponent comp, ActorStatusComponent.StatusType type)
 {
     switch(type){
     case ActorStatusComponent.StatusType.MAXHP:
         return ((comp.BaseMaxHP + comp.MaxHPModifiers[0]) * comp.MaxHPModifiers[1] + comp.MaxHPModifiers[2]) * comp.MaxHPModifiers[3];
     case ActorStatusComponent.StatusType.HP:
         return ((comp.BaseHP + comp.HPModifiers[0]) * comp.HPModifiers[1] + comp.HPModifiers[2]) * comp.HPModifiers[3];
     case ActorStatusComponent.StatusType.DAMAGE:
         return ((comp.BaseDamage + comp.DamageModifiers[0]) * comp.DamageModifiers[1] + comp.DamageModifiers[2]) * comp.DamageModifiers[3];
     case ActorStatusComponent.StatusType.MOVESPEED:
         return ((comp.BaseMoveSpeed + comp.MoveSpeedModifiers[0]) * comp.MoveSpeedModifiers[1] + comp.MoveSpeedModifiers[2]) * comp.MoveSpeedModifiers[3];
     case ActorStatusComponent.StatusType.ATTACKSPEED:
         return ((comp.BaseAttackSpeed + comp.AttackSpeedModifiers[0]) * comp.AttackSpeedModifiers[1] + comp.AttackSpeedModifiers[2]) * comp.AttackSpeedModifiers[3];
     }
     return 0f;
 }
 void HandleHasChangedStatus(bool isBase, ActorStatusComponent.StatusType type, float oldVal, float newVal)
 {
     if(type == ActorStatusComponent.StatusType.TEAM){
         SetColor((int)newVal);
     }
 }
 // Use this for initialization
 void Start()
 {
     component = GetComponent<ActorStatusComponent>();
     component.HasChangedStatus += HandleComponentHasChangedStatus;
     syncObj = GetComponent<NetSyncObjCharacter>();
 }