コード例 #1
0
ファイル: AStarGOAPMap.cs プロジェクト: huokele/shadow-gun
    public void BuildActionsEffectsTable()
    {
        //Go through every effect and add all the actions that have this effect to the effectsTable
        for (E_GOAPAction i = 0; i < E_GOAPAction.Count; i++)
        {
            GOAPAction action = Ai.GetAction(i);

            if (action == null)
            {
                continue;
            }

            //go through all world effects
            for (uint j = 0; j < (int)E_PropKey.Count; j++)
            {
                if (m_EffectsTable[j] == null)
                {
                    m_EffectsTable[j] = new List <GOAPAction>();
                }

                if (action.WorldEffects.IsWSPropertySet((E_PropKey)j)) // if set
                {
                    m_EffectsTable[j].Add(action);                     // store it
                }
            }
        }
    }
コード例 #2
0
    public static GOAPAction Create(E_GOAPAction type, Agent owner)
    {
        GOAPAction a;

        switch (type)
        {
        case E_GOAPAction.move:
            a = new GOAPActionMove(owner);
            break;

        case E_GOAPAction.gotoPos:
            a = new GOAPActionGoTo(owner);
            break;

        case E_GOAPAction.weaponShow:
            a = new GOAPActionWeaponShow(owner);
            break;

        case E_GOAPAction.weaponHide:
            a = new GOAPActionWeaponHide(owner);
            break;

        default:
            Debug.LogError("GOAPActionFactory -  unknow state " + type);
            return(null);
        }

        a.InitAction();
        return(a);
    }
コード例 #3
0
ファイル: GOAPAction.cs プロジェクト: huokele/shadow-gun
    public AgentHuman Owner;     // { get { return Owner; } private set { Owner = value; } }

    protected GOAPAction(E_GOAPAction type, AgentHuman owner)
    {
        WorldPreconditions = new WorldState();
        WorldEffects       = new WorldState();

        Type  = type;
        Owner = owner;
    }
コード例 #4
0
 public void AddAction(E_GOAPAction action)
 {
     m_Actions.Add(action, GOAPActionFactory.Create(action, this));
 }
コード例 #5
0
 public GOAPAction GetAction(E_GOAPAction type)
 {
     return((GOAPAction)m_Actions [type]);
 }
コード例 #6
0
 public GOAPActionPlayAnim(E_GOAPAction type, Agent owner) : base(type, owner)
 {
 }
コード例 #7
0
    public static GOAPAction Create(E_GOAPAction type, AgentHuman owner)
    {
        GOAPAction a;

        switch (type)
        {
        case E_GOAPAction.Move:
            a = new GOAPActionMove(owner);
            break;

        case E_GOAPAction.Goto:
            a = new GOAPActionGoTo(owner);
            break;

        case E_GOAPAction.Roll:
            a = new GOAPActionRoll(owner);
            break;

/*			case E_GOAPAction.WeaponChange:
 *              a = new GOAPActionWeaponChange(owner);
 *              break;
 */
        case E_GOAPAction.WeaponReload:
            a = new GOAPActionWeaponReload(owner);
            break;

        case E_GOAPAction.Use:
            a = new GOAPActionUse(owner);
            break;

        case E_GOAPAction.UseGadget:
            a = new GOAPActionUseGadget(owner);
            break;

        case E_GOAPAction.PlayAnim:
            a = new GOAPActionPlayAnim(owner);
            break;

        case E_GOAPAction.CoverEnter:
            a = new GOAPActionCoverEnter(owner);
            break;

        case E_GOAPAction.CoverMove:
            a = new GOAPActionCoverMove(owner);
            break;

        case E_GOAPAction.CoverFire:
            a = new GOAPActionCoverFire(owner);
            break;

        case E_GOAPAction.CoverLeave:
            a = new GOAPActionCoverLeave(owner);
            break;

        case E_GOAPAction.CoverJumpOverPlayer:
            a = new GOAPActionCoverJumpOverPlayer(owner);
            break;

        case E_GOAPAction.CoverLeaveRightLeft:
            a = new GOAPActionCoverLeaveRightLeft(owner);
            break;

        case E_GOAPAction.Melee:
            a = new GOAPActionMelee(owner);
            break;

        default:
            Debug.LogError("GOAPActionFactory -  unknow state " + type);
            return(null);
        }

        a.InitAction();
        return(a);
    }
コード例 #8
0
 public GOAPActionOrderAttack(E_GOAPAction type, Agent owner) : base(type, owner)
 {
 }
コード例 #9
0
    public static GOAPAction Create(E_GOAPAction type, Agent owner)
    {
        GOAPAction a;

        switch (type)
        {
        case E_GOAPAction.move:
            a = new GOAPActionMove(owner);
            break;

        case E_GOAPAction.gotoPos:
            a = new GOAPActionGoTo(owner);
            break;

        case E_GOAPAction.combatMoveRight:
            a = new GOAPActionCombatMoveToRight(owner);
            break;

        case E_GOAPAction.combatMoveLeft:
            a = new GOAPActionCombatMoveToLeft(owner);
            break;

        case E_GOAPAction.combatMoveForward:
            a = new GOAPActionCombatMoveForward(owner);
            break;

        case E_GOAPAction.combatMoveBackward:
            a = new GOAPActionCombatMoveBackward(owner);
            break;

        case E_GOAPAction.combatRunForward:
            a = new GOAPActionCombatRunForward(owner);
            break;

        case E_GOAPAction.combatRunBackward:
            a = new GOAPActionCombatRunBackward(owner);
            break;

        case E_GOAPAction.lookatTarget:
            a = new GOAPActionLookAtTarget(owner);
            break;

        case E_GOAPAction.gotoMeleeRange:
            a = new GOAPActionGoToMeleeRange(owner);
            break;

        case E_GOAPAction.weaponShow:
            a = new GOAPActionWeaponShow(owner);
            break;

        case E_GOAPAction.weaponHide:
            a = new GOAPActionWeaponHide(owner);
            break;

        case E_GOAPAction.attackMeleeOnce:
            a = new GOAPActionAttackMeleeOnce(owner);
            break;

        case E_GOAPAction.attackBerserk:
            a = new GOAPActionAttackBerserk(owner);
            break;

        case E_GOAPAction.attackWhirl:
            a = new GOAPActionAttackWhirl(owner);
            break;

        case E_GOAPAction.attackCounter:
            a = new GOAPActionAttackCounter(owner);
            break;

        case E_GOAPAction.attackMeleeTwoSwords:
            a = new GOAPActionAttackMeleeTwoSwords(owner);
            break;

        case E_GOAPAction.attackBow:
            a = new GOAPActionAttackBow(owner);
            break;

        case E_GOAPAction.orderAttack:
            a = new GOAPActionOrderAttack(owner);
            break;

        case E_GOAPAction.attackBoss:
            a = new GOAPActionAttackBossSpecial(owner);
            break;

        case E_GOAPAction.attackRoll:
            a = new GOAPActionAttackRoll(owner);
            break;

        case E_GOAPAction.orderDodge:
            a = new GOAPActioOrderDodge(owner);
            break;

        case E_GOAPAction.rollToTarget:
            a = new GOAPActionRollToTarget(owner);
            break;

        case E_GOAPAction.useLever:
            a = new GOAPActionUseLever(owner);
            break;

        case E_GOAPAction.playAnim:
            a = new GOAPActionPlayAnim(owner);
            break;

        case E_GOAPAction.injury:
            a = new GOAPActionInjury(owner);
            break;

        case E_GOAPAction.injuryOrochi:
            a = new GOAPActionInjuryOrochi(owner);
            break;

        case E_GOAPAction.death:
            a = new GOAPActionDeath(owner);
            break;

        case E_GOAPAction.block:
            a = new GOAPActionBlock(owner);
            break;

        case E_GOAPAction.tount:
            a = new GOAPActionIdleActionTount(owner);
            break;

        case E_GOAPAction.knockdown:
            a = new GOAPActionKnockdown(owner);
            break;

        case E_GOAPAction.teleport:
            a = new GOAPActionTeleport(owner);
            break;

        default:
            Debug.LogError("GOAPActionFactory -  unknow state " + type);
            return(null);
        }

        a.InitAction();
        return(a);
    }