コード例 #1
0
 public override void DropItems()
 {
     if (rand.NextDouble() < 0.5)
     {
         Dropping.DropItemFromNPC(TNPC, ItemID.Gel, rand.Next(3, 8));
     }
 }
コード例 #2
0
    public override FSMNode doActivity()
    {
        localTimeDelta = Time.time - lastTimeStamp;
        lastTimeStamp  = Time.time;
        if (target == null)
        {
            if (controller.appleBackpack > 0)
            {
                target = controller.selectVillage();
            }
            else
            {
                Idle idle = gameObject.AddComponent(typeof(Idle)) as Idle;
                idle.controller = this.controller;
                exit();
                return(idle);
            }
        }

        float distanceThresh = target.tag == "fruitTree" ? pickingDistance : droppingDistance;

        if ((transform.position - target.transform.position).magnitude <= distanceThresh && !atDest)
        {
            atDest = true;
        }
        else if (atDest)
        {
            // Check if @ tree
            if (target.tag == "fruitTree")
            {
                Picking pickNode = gameObject.AddComponent(typeof(Picking)) as Picking;
                pickNode.controller = this.controller;
                pickNode.pickTarget = target;
                exit();
                return(pickNode);
            }
            else    // else village
            {
                Dropping dropNode = gameObject.AddComponent(typeof(Dropping)) as Dropping;
                dropNode.controller = this.controller;
                exit();
                return(dropNode);
            }
        }
        else
        {
            transform.LookAt(target.transform.position);
            transform.position += transform.forward * speed * localTimeDelta;
            transform.position  =
                new Vector3(
                    transform.position.x,
                    Terrain.activeTerrain.SampleHeight(transform.position),
                    transform.position.z);
        }
        return(this);
    }
コード例 #3
0
        public DeadLetterSuspensionSpec()
            : base(Config)
        {
            _deadActor = Sys.ActorOf(Props.Create <TestKit.TestActors.EchoActor>());
            Watch(_deadActor);
            _deadActor.Tell(PoisonPill.Instance);
            ExpectTerminated(_deadActor);

            _droppingActor  = Sys.ActorOf(Dropping.Props(), "droppingActor");
            _unhandledActor = Sys.ActorOf(Unandled.Props(), "unhandledActor");
        }
コード例 #4
0
    void DropResurses()
    {
        Dropping d = Instantiate(Drop);

        d.transform.position = transform.position;
        // d.Pos = gameObject.transform.position;
        float   time  = 30 * Time.fixedDeltaTime;
        Vector2 start = Vector2.up / time - 0.5f * Physics2D.gravity * time;

        d.GetComponent <Rigidbody2D>().velocity = start;
        d.GetComponent <Rigidbody2D>().AddTorque(UnityEngine.Random.Range(100, 500));
        d.StartCoroutine(d.WaitToStop());
    }
コード例 #5
0
 internal virtual void OnDropping() => Dropping?.Invoke(this, EventArgs.Empty);