public override bool perform(GameObject agent)
    {
        if (startTime == 0)
        {
            startTime = Time.time;
        }

        if (Time.time - startTime > workDuration)
        {
            // finished chopping
            BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));
            backpack.numFirewood += 5;
            backpack.numLogs      = 0;
            backpack.numFood--;
            chopped = true;
            ToolComponent tool = backpack.tool.GetComponent(typeof(ToolComponent)) as ToolComponent;
            tool.use(0.34f);
            if (tool.destroyed())
            {
                Destroy(backpack.tool);
                backpack.tool = null;
            }
        }
        return(true);
    }
Exemple #2
0
    public override bool Perform(GameObject agent, BlackBoard bb)
    {
        if (startTime == 0)
        {
            startTime = Time.time;
        }

        if (Time.time - startTime > miningDuration)
        {
            targetWolf.WolfNum--;
            // finished hunt
            BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));
            backpack.numMeat += 3;
            finishHunt        = true;

            if (backpack.tool == null)
            {
                ToolComponent tool = backpack.tool.GetComponent(typeof(ToolComponent)) as ToolComponent;
                tool.use(0.5f);
                if (tool.destroyed())
                {
                    Destroy(backpack.tool);
                    backpack.tool = null;
                }
            }
        }
        return(true);
    }
Exemple #3
0
    public override bool perform(GameObject agent)
    {
        BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));

        if (backpack.weapon == null)
        {
            targetWeapon.ammo = 30;
            hasPrimary        = true;

            // create the tool and add it to the agent


            GameObject prefab = Resources.Load <GameObject>(backpack.weaponType);
            GameObject weapon = Instantiate(prefab, transform.position, transform.rotation) as GameObject;
            backpack.weapon         = weapon;
            weapon.transform.parent = transform; // attach the tool

            return(true);
        }
        else
        {
            // we got there but there was no tool available! Someone got there first. Cannot perform action
            return(false);
        }
    }
Exemple #4
0
        public override bool perform(GameObject agent)
        {
            if (startTime == 0)
            {
                startTime = Time.time;
            }

            if (Time.time - startTime > waitTime)
            {
                if (backpack == null)
                {
                    backpack = agent.GetComponent <BackpackComponent>();
                }

                if (targetWeoponSupply.numberOfWeopons > 0)
                {
                    targetWeoponSupply.numberOfWeopons--;


                    backpack.weopon.weoponType = targetWeoponSupply.weoponType;
                    backpack.weopon.damage     = targetWeoponSupply.damage;
                    gotWeopon = true;
                    return(true);
                }
                else
                {
                    Debug.Log(string.Format("no weopons here! Someone got there first! {0}", agent.name));
                    return(false); // no weopons here! Someone got there first!
                }
            }
            return(true);
        }
Exemple #5
0
    public override bool perform(GameObject agent)
    {
        if (targetSupplyPile.numTools > 0)
        {
            targetSupplyPile.numTools -= 1;
            hasTool = true;

            // create the tool and add it to the agent

            BackpackComponent backpack = agent.GetComponent <BackpackComponent>();
            Debug.Log(backpack);
            GameObject prefab = Resources.Load <GameObject> (backpack.toolType);
            Debug.Log(prefab);
            Debug.Log(agent.transform.position);
            GameObject tool = Instantiate(prefab, agent.transform.position, agent.transform.rotation);
            Debug.Log(tool);
            backpack.tool         = tool;
            tool.transform.parent = agent.transform;             // attach the tool

            return(true);
        }
        else
        {
            // we got there but there was no tool available! Someone got there first. Cannot perform action
            return(false);
        }
    }
Exemple #6
0
 void Start()
 {
     if (backpack == null)
     {
         backpack = GetComponent <BackpackComponent>();
     }
     navAgent = GetComponent <NavMeshAgent>();
 }
Exemple #7
0
 protected virtual void Awake()
 {
     if (Backpack == null)
         Backpack = GetComponent<BackpackComponent>();
     
     PathfindingUnit = GetComponent<IUnit>();
     _agent = GetComponent<GoapAgent>();
     _animManager = GetComponent<AnimationManager>();
 }
 void Start()
 {
     backpack = GetComponent <BackpackComponent>();
     if (backpack == null)
     {
         backpack = gameObject.AddComponent <BackpackComponent>() as BackpackComponent;
     }
     navMeshAgent = GetComponent <NavMeshAgent>();
 }
Exemple #9
0
    public override bool Perform(GameObject agent)
    {
        BackpackComponent backpack = agent.GetComponent <BackpackComponent>();

        _targetSupplyPile.numLogs += backpack.numLogs;
        _droppedOffLogs            = true;
        backpack.numLogs           = 0;

        return(true);
    }
Exemple #10
0
    public override bool perform(GameObject agent, BlackBoard bb)
    {
        BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));

        targetSupplyPile.numFirewood += backpack.numFirewood;
        droppedOffFirewood            = true;
        backpack.numFirewood          = 0;

        return(true);
    }
    public override bool perform(GameObject agent)
    {
        BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));

        targetSupplyPile.numLogs += backpack.numLogs;
        droppedOffLogs            = true;
        backpack.numLogs          = 0;

        return(true);
    }
    public override bool perform(GameObject agent)
    {
        BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));

        targetInn.NumFood += backpack.numFood;
        droppedOffFood     = true;
        backpack.numFood   = 0;

        return(true);
    }
Exemple #13
0
        public override bool checkProceduralPrecondition(GameObject agent)
        {
            if (backpack == null)
            {
                backpack = agent.GetComponent <BackpackComponent>();
            }
            // find the nearest supply pile that has spare logs
            WeoponSupplyComponent[] weoponSupplySpply
                = (WeoponSupplyComponent[])
                  GameObject.FindObjectsOfType(typeof(WeoponSupplyComponent));
            WeoponSupplyComponent closest = null;
            float closestDist             = 0;

            foreach (WeoponSupplyComponent supply in weoponSupplySpply)
            {
                if (backpack.weopon != null && supply.damage < backpack.weopon.damage)
                {
                    continue; // has better weopon
                }
                if (supply.numberOfWeopons > 0)
                {
                    if (closest == null)
                    {
                        // first one, so choose it for now
                        closest     = supply;
                        closestDist = (supply.gameObject.transform.position - agent.transform.position).magnitude;
                    }
                    else
                    {
                        // is this one closer than the last?
                        float dist = (supply.gameObject.transform.position - agent.transform.position).magnitude;
                        if (dist < closestDist)
                        {
                            // we found a closer one, use it
                            closest     = supply;
                            closestDist = dist;
                        }
                    }
                }
            }

            if (closest == null)
            {
                // no more guns - use melleee
                backpack.weopon.weoponType = WeoponType.Melee;
                backpack.weopon.damage     = 10;
                return(false);
            }


            targetWeoponSupply = closest;
            target             = targetWeoponSupply.gameObject;
            targetPosition     = target.transform.position;
            return(true);
        }
Exemple #14
0
    public override bool Preform(GameObject _agent)
    {
        Caveman cm = _agent.GetComponent <Caveman>();

        cm.energy -= cost;
        BackpackComponent bp = _agent.GetComponent <BackpackComponent>();

        bp.spears++;
        pickedUp = true;
        return(true);
    }
Exemple #15
0
    /// <summary>
    /// 执行
    /// </summary>
    /// <param name="agent"></param>
    /// <param name="bb"></param>
    /// <returns></returns>
    public override bool Perform(GameObject agent, BlackBoard bb)
    {
        BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));

        targetSupplyPile.numMeat += backpack.numMeat;
        backpack.numMeat          = 0;
        droppedOffMeat            = true;
        // TODO播放效果,更改演员图标

        return(true);
    }
    public override bool Perform(GameObject agent, BlackBoard bb)
    {
        BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));

        targetSupplyPile.numOre += backpack.numOre;
        droppedOffOre            = true;
        backpack.numOre          = 0;
        //TODO play effect, change actor icon

        return(true);
    }
Exemple #17
0
	void Start ()
	{
		if (backpack == null)
			backpack = gameObject.AddComponent ("BackpackComponent" ) as BackpackComponent;
		if (backpack.tool == null) {
			GameObject prefab = Resources.Load<GameObject> (backpack.toolType);
			GameObject tool = Instantiate (prefab, transform.position, transform.rotation) as GameObject;
			backpack.tool = tool;
			tool.transform.parent = transform; // attach the tool
		}
	}
    public override bool Perform(GameObject agent)
    {
        BackpackComponent backpack = agent.GetComponent <BackpackComponent>();

        _targetSupplyPile.numOre += backpack.numOre;
        _droppedOffOre            = true;
        backpack.numOre           = 0;
        //TODO play effect, change actor icon

        return(true);
    }
Exemple #19
0
 void Start()
 {
     gameObject.AddComponent <GoapAgent>();
     anim     = GetComponent <Animator>();
     navAgent = GetComponent <NavMeshAgent>();
     backpack = GetComponent <BackpackComponent>();
     // Don’t update position automatically
     path = new NavMeshPath();
     navAgent.updatePosition = false;
     opponentMe = GetComponent <OpponentComponent>();
     FindOpponents();
 }
Exemple #20
0
    public override bool perform(GameObject agent)
    {
        if (startTime == 0)
        {
            startTime = Time.time;
        }
        targetEstanteComponent.isUsed = true;
        //Debug.Log("startTime" + startTime);

        if (Time.time - startTime > workDuration)
        {
            //Debug.Log(Time.time-startTime);
            // finished filled
            BackpackComponent backpack         = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));
            EstanteComponent  estanteComponent = targetEstanteComponent;

            Debug.LogError("desiredFood " + DesiredFood);
            if (estanteComponent.alimento == DesiredFood)
            {
                int    preTakeAmount = 0;
                Client aux           = null;
                if (agent.GetComponent <Labourer>() is Client)
                {
                    aux           = (Client)agent.GetComponent <Client>();
                    preTakeAmount = aux.listaDelaCompraDictionary[DesiredFood];   //ESTA CANTIDAD NO ES LA CANTIDAD QUE SE COGE FINALMENTE , SIMPLEMENTE ES LA CANTIDAD QUE DESEA COGER
                }
                int canFillAmount = backpack.canFill(DesiredFood, preTakeAmount); //Cantidad de ese alimento que puede meter en su inventario a pesar de que su idea fuera meter mas.
                Debug.LogError(canFillAmount + " canfill");
                //TakedAmount es la cantidad que si ha podido coger en base a la disponibilidad de ese producto en el almacen y teniendo en cuenta que ya se valoro la disponibilidad del propio inventario
                int takedAmount = estanteComponent.Take(canFillAmount);
                Debug.LogError(takedAmount + " taked");
                int r = backpack.Fill(DesiredFood, takedAmount);
                Debug.LogError(r + " fill");
                //Debug.Log("Creo que estoy embuclado " + canFillAmount + " " + alimentoRandom);

                //HEMOS COGIDO LA COMIDA , AHORA HAY QUE ACTUALIZAR LA LISTA DE LA COMPRA
                aux.updateBuyList(DesiredFood, r);
                targetEstanteComponent.isUsed = false;
                if (aux.listaDelaCompra.Count == 0)
                {
                    addEffect("isListComplete", true);
                }
                taked = true;
            }
            else
            {
                return(false); //Se ha fallado al intentar conseguir el alimento del estante que queriamos.
            }
            //Debug.Log("He salido de un bucle");
        }
        return(true);
    }
Exemple #21
0
 // Use this for initialization
 void Start()
 {
     if (backpack == null)
     {
         backpack = gameObject.AddComponent("BackpackComponent") as BackpackComponent;
     }
     if (backpack.tool == null)
     {
         GameObject prefab = Resources.Load <GameObject> (backpack.toolType);
         GameObject tool   = Instantiate(prefab, transform.position, transform.rotation) as GameObject;
         backpack.tool         = tool;
         tool.transform.parent = transform;             // attach the tool
     }
 }
Exemple #22
0
 void Start()
 {
     if (backpack == null)
     {
         backpack = gameObject.AddComponent <BackpackComponent>() as BackpackComponent;
     }
     unit = gameObject.GetComponent <Unit>();
     //if (backpack.tool == null) {
     //	GameObject prefab = Resources.Load<GameObject> (backpack.toolType);
     //	GameObject tool = Instantiate (prefab, transform.position, transform.rotation) as GameObject;
     //	backpack.tool = tool;
     //	tool.transform.parent = transform; // attach the tool
     //}
 }
 void Start()
 {
     navMeshAgent = gameObject.GetComponent <NavMeshAgent>();
     backpack     = gameObject.GetComponent <BackpackComponent>();
     horseAnim    = gameObject.GetComponentInChildren <Animator>();
     if (BreathInput != null)
     {
         testData     = BreathInput.GetComponent <PEPTestDataInput>();
         measurements = BreathInput.GetComponent <PepMeasurementsComponent>();
     }
     else
     {
         Debug.LogError("There is no breath input in the scene. This is bad");
     }
 }
Exemple #24
0
    void Start()
    {
        if (backpack == null)
        {
            backpack = gameObject.AddComponent <BackpackComponent>( ) as BackpackComponent;
        }
        if (backpack.tool == null)
        {
            GameObject tool = Instantiate(toolPrefab, transform.position, transform.rotation) as GameObject;
            backpack.tool         = tool;
            tool.transform.parent = transform;             // attach the tool
        }

        seek = GetComponent <SeekBehaviour>();
    }
Exemple #25
0
    public override bool perform(GameObject agent, BlackBoard bb)
    {
        if (startTime == 0)
        {
            startTime = Time.time;
        }

        if (Time.time - startTime > miningDuration)
        {
            // finished mining
            BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));
            backpack.numOre += 2;
            mined            = true;
        }
        return(true);
    }
Exemple #26
0
    public override bool Perform(GameObject agent, BlackBoard bb)
    {
        if (startTime == 0)
        {
            startTime = Time.time;
        }

        if (Time.time - startTime > forgeDuration)
        {
            // finished forging a tool
            BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));
            backpack.numOre = 0;
            forged          = true;
        }
        return(true);
    }
    public override bool Perform(GameObject agent)
    {
        if (_startTime == 0)
        {
            _startTime = Time.time;
        }

        if ((Time.time - _startTime) > forgeDuration)
        {
            // finished forging a tool
            BackpackComponent backpack = agent.GetComponent <BackpackComponent>();
            backpack.numOre = 0;
            _forged         = true;
        }
        return(true);
    }
Exemple #28
0
    public override bool perform(GameObject agent)
    {
        if (startTime == 0)
        {
            startTime = Time.time;
        }

        if (Time.time - startTime > workDuration)
        {
            // finished chopping
            BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));
            backpack.numBerries += 5;
            chopped              = true;
        }
        return(true);
    }
 public override bool perform(GameObject agent)
 {
     if (targetSupplyPile.NumFirewood > 0)
     {
         targetSupplyPile.NumFirewood -= 1;
         hasFirewood = true;
         //TODO play effect, change actor icon
         BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));
         backpack.numFirewood = 1;
         return(true);
     }
     else
     {
         // we got there but there was no logs available! Someone got there first. Cannot perform action
         return(false);
     }
 }
Exemple #30
0
 private void CharacterBody_Start(On.RoR2.CharacterBody.orig_Start orig, CharacterBody self)
 {
     orig(self);
     if (NetworkServer.active && self.isPlayerControlled)
     {
         var masterObj = self.masterObject;
         BackpackComponent backpackComponent = masterObj.GetComponent <BackpackComponent>();
         if (!backpackComponent)
         {
             backpackComponent = masterObj.AddComponent <BackpackComponent>();
         }
         backpackComponent.characterBody = self;
         backpackComponent.localUser     = LocalUserManager.readOnlyLocalUsersList[0];
         backpackComponent.inventory     = self.inventory;
         //backpackComponent.UpdateDefault();
     }
 }
Exemple #31
0
    public override bool perform(GameObject agent, BlackBoard bb)
    {
        if (startTime == 0)
        {
            startTime = Time.time;
        }

        if (Time.time - startTime > workDuration)
        {
            BackpackComponent backpack = (BackpackComponent)agent.GetComponent(typeof(BackpackComponent));
            backpack.numMeat -= 1;
            // finished chopping
            Brain brain = (Brain)agent.GetComponent(typeof(Brain));
            brain.Hunger += 100;
            finishEat     = true;
        }
        return(true);
    }
Exemple #32
0
 void Start()
 {
     seeker = GetComponent<Seeker>();
     controller = GetComponent<CharacterController>();
     if (backpack == null)
         backpack = gameObject.AddComponent <BackpackComponent>( ) as BackpackComponent;
     if (backpack.tool == null) {
         GameObject prefab = Resources.Load<GameObject> (backpack.toolType);
         GameObject tool = Instantiate (prefab, transform.position, transform.rotation) as GameObject;
         backpack.tool = tool;
         tool.transform.parent = transform; // attach the tool
     }
 }
 void Start()
 {
     navMeshAgent = gameObject.GetComponent<NavMeshAgent>();
     backpack = gameObject.GetComponent<BackpackComponent>();
     horseAnim = gameObject.GetComponentInChildren<Animator>();
     if(BreathInput != null)
     {
         testData = BreathInput.GetComponent<PEPTestDataInput>();
         measurements = BreathInput.GetComponent<PepMeasurementsComponent>();
     }
     else
     {
         Debug.LogError("There is no breath input in the scene. This is bad");
     }
 }