void Refill()
 {
     refillTrigger      = false;
     kobotoRefillTarget = null;
     animator.Play("Replenish");
     SetCanPickup(true);
 }
 void OnKobotoJetpackEvent(Koboto koboto)
 {
     if (koboto == targetKoboto)
     {
         UpdateCount();
     }
 }
Beispiel #3
0
 public override void OnAttachToKoboto(Koboto koboto)
 {
     base.OnAttachToKoboto(koboto);
     this.koboto = koboto;
     animator    = GetComponent <Animator>();
     burnSound   = GetComponent <AudioSource>();
 }
 public override void OnAttachToKoboto(Koboto koboto)
 {
     base.OnAttachToKoboto(koboto);
     motorControl            = new PDController(motorP, motorD);
     bladeTransform.rotation = Quaternion.identity;
     resetMotor = true;
     dustVFX.SetActive(false);
 }
Beispiel #5
0
 void Open(Koboto k)
 {
     Debug.Log("Open");
     pack.SetActive(false);
     chute.SetActive(true);
     open = true;
     k.SetCenterOfMassOffset(Vector3.up * 3f);
 }
Beispiel #6
0
 void Close(Koboto k)
 {
     Debug.Log("Close");
     pack.SetActive(true);
     chute.SetActive(false);
     open = false;
     k.ResetCenterOfMass();
 }
 public override void KobotoEnteredState(Koboto koboto, KobotoState state)
 {
     base.KobotoEnteredState(koboto, state);
     if (state != KobotoState.Alive)
     {
         dustVFX.SetActive(false);
         overGround = false;
     }
 }
    public override void UpdateKoboto(Koboto koboto, KobotoSensor sensors)
    {
        float rollVol = 0f;

        if (sensors.onGround)
        {
            rollVol = Mathf.Clamp01(sensors.velocity.magnitude / 10f);
        }
        koboto.soundPlayer.PlayRoll(rollVol);
    }
Beispiel #9
0
    public override void OnAttachToKoboto(Koboto koboto)
    {
        base.OnAttachToKoboto(koboto);
        hammerBody  = GetComponent <Rigidbody>();
        hammerJoint = GetComponent <ConfigurableJoint>();

        hammerJoint.connectedBody   = koboto.GetComponent <Rigidbody>();
        hammerJoint.connectedAnchor = koboto.transform.InverseTransformPoint(transform.position);

        breakTimer = 0f;
    }
Beispiel #10
0
 protected override void OnKobotoEnter(Koboto koboto)
 {
     Debug.Log("Koboto enter");
     if (onceOnly)
     {
         if (onceOnlyTriggered)
         {
             return;
         }
         onceOnlyTriggered = true;
     }
     lineAttach.Freeze(false);
 }
Beispiel #11
0
 protected override void OnKobotoEnter(Koboto koboto)
 {
     base.OnKobotoEnter(koboto);
     if (killer == null)
     {
         killer = transform;
     }
     koboto.Kill(deathType, killer);
     if (parentToKiller)
     {
         koboto.ParentToTransform(killer);
     }
 }
 protected override void OnKobotoEnter(Koboto koboto)
 {
     if (isOccupied)
     {
         return;
     }
     if (koboto.currentState == KobotoState.Alive || koboto.currentState == KobotoState.Asleep)
     {
         koboto.Rescue(this);
         koboto.ParentToTransform(rescuedKobotoParent);
         animator.SetTrigger("Rescue");
     }
 }
    public override void UpdateKoboto(Koboto koboto, KobotoSensor sensors)
    {
        float rollVol = 0f;

        if (sensors.onGround)
        {
            rollVol = Mathf.Clamp01(sensors.velocity.magnitude / 10f);
        }

        koboto.soundPlayer.PlayRoll(rollVol);

        foreach (var spoke in spokeTransforms)
        {
            Debug.Log("Rotating wheel: " + wheelSpeed);
            spoke.Rotate(Vector3.right, wheelSpeed * Time.fixedDeltaTime);
        }
    }
Beispiel #14
0
    void OnTriggerExit(Collider other)
    {
        Debug.Log("Trigger exit");
        if (!isActive)
        {
            return;
        }
        Koboto koboto = other.gameObject.GetComponent <Koboto>();

        if (koboto != null)
        {
            OnKobotoExit(koboto);
        }
        else
        {
            OnObjectExit(other);
        }
    }
Beispiel #15
0
    public void SpawnKobotos()
    {
        kobotos      = new List <Koboto>();
        kobotoParent = new GameObject("KobotoParent").transform;
        foreach (KobotoSpawnInfo spawnInfo in kobotoSpawnInfo)
        {
            Koboto koboto = KobotoFactory.SpawnKoboto(spawnInfo.kobotoType, spawnInfo.spawnPoint.position, kobotoParent);
            koboto.SetLevelBounds(levelBounds);
            koboto.SetLevelZones(levelZones);
            kobotos.Add(koboto);
            koboto.SetState(KobotoState.Alive);

            if (availableAttachments.Contains(EAttachmentType.Jetpack))
            {
                koboto.AddAttachment(EAttachmentType.Jetpack);
            }
        }
        SelectKoboto(kobotos[0]);
    }
Beispiel #16
0
    public override void UpdateKoboto(Koboto koboto, KobotoSensor sensor)
    {
        base.UpdateKoboto(koboto, sensor);
        bool shouldOpen  = false;
        bool shouldClose = false;

        shouldClose |= sensor.onGround;
        shouldClose |= sensor.onCeiling;

        shouldClose |= sensor.velocity.y > 0f;

        shouldOpen = !shouldClose && sensor.velocity.y < downSpeedForOpen;

        //   Debug.Log("speed " + sensor.velocity.y + " should open " + shouldOpen + " should close " + shouldClose);

        if (!open && shouldOpen)
        {
            Open(koboto);
        }
        else if (open && shouldClose)
        {
            Close(koboto);
        }
    }
    protected override void OnKobotoEnter(Koboto koboto)
    {
        base.OnKobotoEnter(koboto);

        if (!canPickup)
        {
            return;
        }

        var jetpack = koboto.GetAttachment <AttachmentJetpack>(EAttachmentType.Jetpack);

        if (jetpack != null)
        {
            kobotoRefillTarget = koboto;
            jetpack.PickupFuel();
            animator.Play("Collect");
            SetCanPickup(false);

            if (replenish || replenishIfEmpty)
            {
                DoActionAfterUnpausedTime(() => Replenish(), replenishTime);
            }
        }
    }
 void OnKobotoSelect(Koboto koboto)
 {
     targetKoboto = koboto;
     UpdateCount();
 }
 public override void OnAttachToKoboto(Koboto koboto)
 {
     base.OnAttachToKoboto(koboto);
     lineRenderer = GetComponent <LineRenderer>();
 }
Beispiel #20
0
 void OnKobotoSelected(Koboto koboto)
 {
     targetK = koboto;
     target  = koboto.transform;
     posStack.SetAll(target.position);
 }
Beispiel #21
0
 public override void OnRemoveFromKoboto(Koboto koboto)
 {
     base.OnRemoveFromKoboto(koboto);
     koboto.ResetCenterOfMass();
 }
Beispiel #22
0
 public override void OnAttachToKoboto(Koboto koboto)
 {
     base.OnAttachToKoboto(koboto);
     dragControl = new PDController(dragP, dragD);
     chute.SetActive(false);
 }
Beispiel #23
0
 protected virtual void OnKobotoEnter(Koboto koboto)
 {
 }
Beispiel #24
0
 protected virtual void OnKobotoExit(Koboto koboto)
 {
 }
Beispiel #25
0
 public override void OnAttachToKoboto(Koboto koboto)
 {
     base.OnAttachToKoboto(koboto);
     firstBounce = true;
 }
Beispiel #26
0
 protected override void OnKobotoExit(Koboto koboto)
 {
     lineAttach.Freeze(true);
 }
Beispiel #27
0
 void SelectKoboto(Koboto koboto)
 {
     selectedKoboto = koboto;
     Koboto.Events.Trigger(KEventEnum.Selected, koboto);
 }
Beispiel #28
0
 public virtual void KobotoEnteredState(Koboto koboto, KobotoState state)
 {
 }
Beispiel #29
0
 protected override void OnKobotoEnter(Koboto koboto)
 {
     base.OnKobotoEnter(koboto);
     SetCollected(true);
 }
Beispiel #30
0
 public virtual void UpdateKoboto(Koboto koboto, KobotoSensor sensor)
 {
 }