Esempio n. 1
0
    public Actor GetMostHateActor()
    {
        PartnerState state = null;

        foreach (var item in mHatredPartners)
        {
            if (item == null || item.TargetActor == null)
            {
                continue;
            }

            if (state == null)
            {
                state = item;
                continue;
            }

            if (state != null && item.Value > state.Value)
            {
                state = item;
            }
        }

        if (state != null)
        {
            return(state.TargetActor);
        }

        return(null);
    }
Esempio n. 2
0
    public void BeAttacked(Damage damage)
    {
        if (damage == null)
        {
            return;
        }

        var src_actor = damage.src;

        if (src_actor == null)
        {
            return;
        }

        var target_actor = damage.target;

        if (target_actor == null)
        {
            return;
        }

        PartnerState state = GetHatredPartnerState(src_actor);

        if (state == null)
        {
            return;
        }

        state.Value += (uint)damage.DamageValue;
    }
Esempio n. 3
0
    private static PartnerState _instance; //only declared once

    private PartnerState()                 //set instance to itself
    {
        if (_instance != null)
        {
            return;
        }

        _instance = this;
    }
Esempio n. 4
0
    private PartnerState GetHatredPartnerState(Actor actor)
    {
        if (actor == null)
        {
            return(null);
        }

        foreach (var item in mHatredPartners)
        {
            if (item.TargetActor == actor)
            {
                return(item);
            }
        }

        PartnerState state = new PartnerState();

        state.TargetActor = actor;
        state.Value       = 0;

        mHatredPartners.AddLast(state);

        return(state);
    }