Inheritance: Token
示例#1
0
        public override bool Init()
        {
            bool initSuccess = false;

            //Initialised required config values - Minimum Spike Pips values determines the pip distance required to indicate a spike in either direction
            if (RuleConfig.Params.TryGetValue(RuleConfiguration.MINSPIKEPIPS, out object minSpikePips))
            {
                if (Double.TryParse(minSpikePips.ToString(), out MinSpikePips))
                {
                    initSuccess = true;
                }
            }

            //Initialised inactive
            IsActive = false;

            //Reset all variables
            OpenPrice          = 0;
            SpikeUpPeakPips    = 0;
            SpikeUpPeakPrice   = 0;
            SpikeDownPeakPips  = 0;
            SpikeDownPeakPrice = 0;
            SpikeDirection     = Spike.NONE;

            return(initSuccess);
        }
示例#2
0
        //Capture Spike
        public void CaptureSpike(Tick tick)
        {
            double tickMidPrice = GetMidPrice(tick);

            //If the Mid price is above the OpenPrice then update the Spike UP
            if (tickMidPrice > OpenPrice)
            {
                if (tickMidPrice > SpikeUpPeakPrice || SpikeUpPeakPrice == 0)
                {
                    SpikeUpPeakPrice = tickMidPrice;
                    SpikeUpPeakPips  = tickMidPrice - OpenPrice;
                    if (SpikeUpPeakPips > MinSpikePips)
                    {
                        SpikeDirection = Spike.UP;
                    }
                }
            }

            //If the Mid price is below the OpenPrice then update the Spike DOWN
            if (tickMidPrice < OpenPrice)
            {
                if (tickMidPrice < SpikeDownPeakPrice || SpikeDownPeakPrice == 0)
                {
                    SpikeDownPeakPrice = tickMidPrice;
                    SpikeDownPeakPips  = OpenPrice - tickMidPrice;
                    if (SpikeUpPeakPips > MinSpikePips)
                    {
                        SpikeDirection = Spike.DOWN;
                    }
                }
            }
        }
示例#3
0
        public void Move()
        {
            if (Start == true)
            {
                Start = false;
            }

            if (Spike.Id == 1 || Spike.Id == 3)
            {
                if (Spike.X > ONE_HUNDRED_ELEVEN * Global.Var.SCALE)
                {
                    Spike.SetState(Spike.horizontalMovingBackward);
                    Spike.CurrentState.Start = true;
                }
                else
                {
                    Spike.X = Spike.X + F_ONE_DOT_FIVE * Global.Var.SCALE;
                }
            }
            else if (Spike.Id == 2 || Spike.Id == 4)
            {
                if (Spike.X < ONE_HUNDRED_TWENTY_NINE * Global.Var.SCALE)
                {
                    Spike.SetState(Spike.horizontalMovingBackward);
                    Spike.CurrentState.Start = true;
                }
                else
                {
                    Spike.X = Spike.X - F_ONE_DOT_FIVE * Global.Var.SCALE;
                }
            }
        }
        public void Move()
        {
            if (Start == true)
            {
                Start = false;
            }

            if (Spike.Id == 1 || Spike.Id == 2)
            {
                if (Spike.Y > ONE_HUNDRED_THIRTY_FIVE * Global.Var.SCALE)
                {
                    Spike.SetState(Spike.verticalMovingBackward);
                    Spike.CurrentState.Start = true;
                }
                else
                {
                    Spike.Y = Spike.Y + F_ONE_DOT_FIVE * Global.Var.SCALE;
                }
            }
            else if (Spike.Id == 3 || Spike.Id == 4)
            {
                if (Spike.Y < ONE_HUNDRED_FIFTY_TWO * Global.Var.SCALE)
                {
                    Spike.SetState(Spike.verticalMovingBackward);
                    Spike.CurrentState.Start = true;
                }
                else
                {
                    Spike.Y = Spike.Y - F_ONE_DOT_FIVE * Global.Var.SCALE;
                }
            }
        }
示例#5
0
 void ColWithSpike(Spike spike)
 {
     if ((isPowered && state == State.Jumping) || isStomping)
     {
         spike.ColWithStomp();
         GameManager.Instance.StompSpike(transform.position);
     }
     else if (!isImmune)
     {
         life -= 1;
         lifeSet.GetDamage();
         isImmune    = true;
         immuneTick  = 0f;
         immuneETime = 0f;
         cameraScript.ShakeSpike();
         if (life == 0)
         {
             Die();
         }
         else
         {
             hitParticle.transform.position   = transform.position + new Vector3(0, 0, 500);
             hitParticle.transform.localScale = transform.localScale;
             hitParticle.gameObject.SetActive(true);
             hurtSound.Play();
         }
     }
 }
示例#6
0
    private void SpawnTower()
    {
        Spike   spike      = SpikePooler.Instance.GetPooledObject();
        Vector3 spawnPoint = cube.GetRandomPointInside();

        spike.Initialize(spawnPoint);
    }
示例#7
0
 public void Move()
 {
     if (Spike.Id == 1 || Spike.Id == 3)
     {
         if (Spike.X < THIRTY_FOUR * Global.Var.SCALE)
         {
             Spike.SetState(Spike.idleState);
             Spike.CurrentState.Start = true;
         }
         else if (count > FORTY)
         {
             Spike.X = Spike.X - F_DOT_EIGHT * Global.Var.SCALE;
         }
     }
     else if (Spike.Id == 2 || Spike.Id == 4)
     {
         if (Spike.X > TWO_HUNDRED_SEVEN * Global.Var.SCALE)
         {
             Spike.SetState(Spike.idleState);
             Spike.CurrentState.Start = true;
         }
         else if (count > FORTY)
         {
             Spike.X = Spike.X + F_DOT_EIGHT * Global.Var.SCALE;
         }
     }
 }
    public void AddObserver(Spike observer)
    {
        GameObject g = Instantiate(observer.gameObject);

        Spikes.Add(g.GetComponent <Spike>());
        Wave.SpikesSpawnAmount++;
    }
    public void Awake()
    {
        this.spriteRenderer = GetComponent <SpriteRenderer>();
        // Set random sprite
        blockNum = Random.Range(1, 4);
        this.spriteRenderer.sprite = Instantiate(Resources.Load <Sprite>("Sprites/Environment/block" + blockNum)) as Sprite;


        // Spikes
        if (!starterBlock)
        {
            if (Random.Range(0, 10) == 0)
            {
                GameObject spikeGO = (GameObject)Instantiate(spikePrefab, transform.position + Vector3.up + Vector3.back, Quaternion.Euler(new Vector3(0f, 0f, -90f)));
                spikeGO.transform.parent = transform;
                spikeSprite = spikeGO.GetComponent <Sprite>();
                spike       = spikeGO.GetComponent <Spike>();
                spikes      = true;
            }
            else if (Random.Range(0, 8) == 0)
            {
                battery = (GameObject)Instantiate(batteryPrefab, transform.position + Vector3.up * 1.5f + Vector3.back, Quaternion.identity);
                ((Rigidbody2D)battery.GetComponent <Rigidbody2D>()).velocity = Vector2.up * GameManager.instance.scrollSpeed;
                battery.transform.parent = transform;
            }
        }
        // Velocity
        GetComponent <Rigidbody2D>().velocity = Vector2.up * GameManager.instance.scrollSpeed;
    }
 // Start is called before the first frame update
 void Start()
 {
     gameStatus = FindObjectOfType <GameStatus>();
     spike      = FindObjectOfType <Spike>();
     ball       = FindObjectOfType <Ball>();
     playAgainButton.gameObject.SetActive(false);
 }
 public void Move()
 {
     if (Spike.Id == 1 || Spike.Id == 2)
     {
         if (Spike.Y < NINETY_SEVEN * Global.Var.SCALE)
         {
             Spike.SetState(Spike.idleState);
             Spike.CurrentState.Start = true;
         }
         else
         {
             Spike.Y = Spike.Y - F_DOT_SEVEN * Global.Var.SCALE;
         }
     }
     else if (Spike.Id == 3 || Spike.Id == 4)
     {
         if (Spike.Y > ONE_HUNDRED_EIGHTY_NINE * Global.Var.SCALE)
         {
             Spike.SetState(Spike.idleState);
             Spike.CurrentState.Start = true;
         }
         else
         {
             Spike.Y = Spike.Y + F_DOT_SEVEN * Global.Var.SCALE;
         }
     }
 }
示例#12
0
        public override void LoadContent()
        {
            base.LoadContent();
            timer   = 0;
            player  = new Player(new Rectangle(600, 500, 50, 50));
            player2 = new Player(new Rectangle(800, 800, 50, 50));

            Platform  platform  = new Platform("Platform", new Rectangle(700, 800, 100, 30));
            Platform  platform2 = new Platform("Platform", new Rectangle(600, 900, 100, 30));
            Platform  platform3 = new Platform("Platform", new Rectangle(550, 700, 100, 30));
            Platform  platform4 = new Platform("Platform", new Rectangle(0, 950, 10000, 30));
            Platform  platform5 = new Platform("Platform", new Rectangle(1000, 400, 30, 600));
            Spike     spike     = new Spike("Spike", new Rectangle(900, 900, 30, 100));
            BouncePad bouncePad = new BouncePad("BouncePad", new Rectangle(200, 950, 60, 10));
            Pillow    pillow    = new Pillow("Pillow", new Rectangle(300, 920, 30, 20));

            sprites.Add(platform);
            sprites.Add(platform2);
            sprites.Add(platform3);
            sprites.Add(platform4);
            sprites.Add(platform5);
            sprites.Add(player2);
            sprites.Add(player);
            sprites.Add(spike);
            sprites.Add(bouncePad);
            sprites.Add(pillow);

            foreach (var s in sprites)
            {
                s.LoadContent(Content);
            }
            controller  = new GameController(1);
            controller2 = new GameController(2);
        }
示例#13
0
 void Awake()
 {
     spike       = GetComponentInChildren <Spike>();
     spikeRb     = spike.GetComponent <Rigidbody>();
     spikeTarget = spike.transform.parent;
     spike.transform.localPosition = spikeRb.centerOfMass;
 }
示例#14
0
        protected override TestResult ExecuteTest(Spike.Scripting.Hosting.CSharp.Context ctx, string test)
        {
            var times = new List<long>();
            try
            {
                //Warmup run so we don't get hit by Spike.Scripting assembly JIT overhead
                ctx.ExecuteFile(test);

                for (int i = 0; i < Runs; i++)
                {
                    // Collect all garbage between runs
                    GC.Collect(2, GCCollectionMode.Forced);

                    // Run and time
                    var sw = Stopwatch.StartNew();
                    ctx.ExecuteFile(test);
                    sw.Stop();

                    times.Add(sw.ElapsedMilliseconds);
                }
            }
            catch (Exception ex)
            {
                return new TestResult { Error = ex.GetBaseException().Message, Tag = Tuple.Create(test, Enumerable.Repeat(-1L, Runs).ToArray()) };
            }

            return new TestResult { Score = GetScore(times), Tag = Tuple.Create(test, times.ToArray()) };
        }
示例#15
0
    // ロード開始
    public void Load(int stage)
    {
        TMXLoader tmx = new TMXLoader();

        // ファイルパスを作成
        string path = string.Format("Levels/{0:D3}", stage);

        tmx.Load(path);

        // 0番目のレイヤーに情報を取得する
        Layer2D layer = tmx.GetLayer(0);

        // タイルの配置
        for (int j = 0; j < layer.Height; j++)
        {
            for (int i = 0; i < layer.Width; i++)
            {
                // 座標を指定してレイヤーの値を取得
                int   v = layer.Get(i, j);
                float x = GetChipX(i);
                float y = GetChipY(j);

                switch (v)
                {
                case CHIP_PLAYER:
                {
                    // プレイヤを移動させる
                    GameObject obj    = GameObject.Find("Player") as GameObject;
                    Player     player = obj.GetComponent <Player>();
                    player.SetPosition(x, y);
                }
                break;

                case CHIP_WALL:
                    // 壁を作成
                    Wall.Add(x, y);
                    break;

                case CHIP_SPIKE:
                    // トゲを生成
                    Spike.Add(x, y);
                    break;

                case CHIP_FLOOR_MOVE:
                    // 移動床を作成
                    FloorMove.Add(x, y);
                    break;

                case CHIP_GOAL:
                {
                    // ゴールを移動させる
                    GameObject obj  = GameObject.Find("Goal") as GameObject;
                    Goal       goal = obj.GetComponent <Goal>();
                    goal.SetPosition(x, y);
                }
                break;
                }
            }
        }
    }
示例#16
0
    /*
     * Adds Spike
     */
    private void AddSpike()
    {
        GameObject c = (GameObject)Instantiate(spikePrefab);

        _child = c.GetComponent <Spike>();
        _child.init(_currentLane, _swirlie, this);
        _head.NumOfSpikes++;
    }
示例#17
0
    private void Awake()
    {
        spike = transform.parent.gameObject.GetComponent <Spike>();

        player = GameObject.FindGameObjectWithTag("Player").GetComponent <Player>();

        StartCoroutine(JustSpawned());
    }
示例#18
0
 public PlayGround(GameController gameController)
 {
     Spike               = new Spike();
     Collaborator        = new Collaborator();
     CollaboratorActive  = false;
     PlayField           = new Dictionary <string, Square>();
     Boxes               = new List <Box>();
     this.gameController = gameController;
 }
示例#19
0
    public Spike getHead()
    {
        Spike current = this;

        while (current.Parent != null)
        {
            current = current.Parent;
        }
        return(current);
    }
示例#20
0
 /*
  * Removes Spike
  */
 private void RemoveSpike(Spike s)
 {
     if (s == _child)
     {
         _child        = null;
         _invulnerable = false;
     }
     _swirlie.TailSpike = this;
     _head.NumOfSpikes--;
     _startTime = Time.time;
 }
示例#21
0
 bool IDeletable.Delete(Spike spike)
 {
     if (!invulnerable)
     {
         int spikeX  = (int)spike.transform.position.x;
         int parentX = (int)this.transform.position.x;
         int x       = spikeX - parentX;
         EffectManager.AddGameEffect(new SplitTextEffect(this.GetComponent <TextCollider2D>(), x));
     }
     return(!invulnerable);
 }
示例#22
0
    void OnCollisionEnter2D(Collision2D coll)
    {
        float hitTime = Time.time;

        if ((hitTime - hitImmunityTime) > lastHitTime && coll.gameObject.tag == "Spike")
        {
            Spike spike = coll.gameObject.GetComponentInParent <Spike> ();
            TakeHit(spike.damage);
            lastHitTime = hitTime;
        }
    }
示例#23
0
 /*
  * Spawns Swirlie on same lane as spike
  */
 public override void spawn(Lane spawnLane)
 {
     _heightOffset = renderer.bounds.size.y / 2.0f;
     _shootTime = Time.time;
     _currentLane = spawnLane;
     _alive = true;
     gameObject.transform.position = _currentLane.Back + (renderer.bounds.size.y / 2) * _currentLane.Normal;
     transform.rotation = Quaternion.LookRotation(_currentLane.Normal);
     GameObject spike = (GameObject)Instantiate(spikePrefab);
     _headSpike = spike.GetComponent<Spike>();
     _headSpike.init(spawnLane, this);
 }
示例#24
0
    void CreateSpike()
    {
        Spike spike = PoolManager.Instance.GetObject <Spike>(Defs.Spike);
        int   dir   = Random.Range(0, 2) * 2 - 1;

        spike.Initialize(dir);
        if (Random.Range(0f, 1f) > 0.66f)
        {
            Spike spike2 = PoolManager.Instance.GetObject <Spike>(Defs.Spike);
            spike2.Initialize(dir, true);
        }
    }
示例#25
0
    void CreateSpike()
    {
        Vector3 position;

        position.x = -width + Random.Range(1f, (width * 2) - 2f);
        position.y = -height + Random.Range(1f, (height * 2) - 2f);
        position.z = -1f;
        Spike spike = null;

        spike = Instantiate(spikePrefab, position, Quaternion.identity).GetComponent <Spike>();

        spikes.Add(spike);
    }
示例#26
0
    void SpawnSpike()
    {
        y            = Random.Range(LOWER_RANGE, UPPER_RANGE);
        spawnedSpike = Instantiate(spikePrefab, new Vector2(x, y), Quaternion.identity);
        spike        = spawnedSpike.GetComponent <Spike>();
        if (initialSpeed < MAX_SPEED)
        {
            initialSpeed += increasedSpeed;
            spike.SetSpeed(initialSpeed);
        }

        Destroy(spawnedSpike, 10f);
    }
示例#27
0
    /*
     * Spawns Swirlie on same lane as spike
     */
    public override void spawn(Lane spawnLane)
    {
        _heightOffset = renderer.bounds.size.y / 2.0f;
        _shootTime    = Time.time;
        _currentLane  = spawnLane;
        _alive        = true;
        gameObject.transform.position = _currentLane.Back + (renderer.bounds.size.y / 2) * _currentLane.Normal;
        transform.rotation            = Quaternion.LookRotation(_currentLane.Normal);
        GameObject spike = (GameObject)Instantiate(spikePrefab);

        _headSpike = spike.GetComponent <Spike>();
        _headSpike.init(spawnLane, this);
    }
示例#28
0
    public void Load(int stage)
    {
        TMXLoader tmx  = new TMXLoader();
        string    path = string.Format("Levels/{0:D3}", stage);

        tmx.Load(path);
        Layer2D layer = tmx.GetLayer(0);

        //Debug.Log ("幅:" + layer.Width);
        //Debug.Log ("高:" + layer.Height);
        for (int j = 0; j < layer.Height; j++)
        {
            for (int i = 0; i < layer.Width; i++)
            {
                int   v = layer.Get(i, j);
                float x = GetChipX(i);
                float y = GetChipY(j);
                switch (v)
                {
                case CHIP_PLAYER:
                {
                    GameObject obj    = GameObject.Find("Player") as GameObject;
                    Player     player = obj.GetComponent <Player> ();
                    player.SetPosition(x, y);
                }
                break;

                case CHIP_WALL:
                    Wall.Add(x, y);
                    break;

                case CHIP_SPIKE:
                    Spike.Add(x, y);
                    break;

                case CHIP_FLOOR_MOVE:
                    FloorMove.Add(x, y);
                    break;

                case CHIP_GOAL:
                {
                    GameObject obj  = GameObject.Find("Goal") as GameObject;
                    Goal       goal = obj.GetComponent <Goal>();
                    goal.SetPosition(x, y);
                }
                break;
                }
            }
        }
    }
示例#29
0
    void CreateSpike()
    {
        int[] toSide = new int[2] {
            1, -1
        };
        //check Z
        Vector3 position;

        position.x = Random.Range(0.3f, width - 1f) * toSide[Random.Range(0, toSide.Length)];
        position.y = Random.Range(0.3f, height - 1f) * toSide[Random.Range(0, toSide.Length)];
        position.z = -1.2f;
        Spike spike = null;

        spike = Instantiate(spikePrefab, position, Quaternion.identity).GetComponent <Spike>();
        spikes.Add(spike);
    }
示例#30
0
    void CreateSpike()
    {
        Spike spike = null;

        // spike = Instantiate(spikePrefab, position, Quaternion.identity).GetComponent<Spike>();

        // spikes.Add(spike);

        for (int i = 0; i < numberOfSpike; i++)
        {
            Vector3 position;
            position.x = -width + Random.Range(1f, (width * 2) - 2f);
            position.y = -height + Random.Range(1f, (height * 2) - 2f);
            position.z = -1;
            spike      = Instantiate(spikePrefab, position, Quaternion.identity).GetComponent <Spike>();
            spikes.Add(spike);
        }
    }
示例#31
0
    public void SpawnSpike()
    {
        if (spawningSpike != null)
        {
            waitingSpike = spawningSpike;
            waitingSpike.Invoke("Fall", 1.5F);
        }

        spawningSpike = Spawn("Spike", transform.position, Quaternion.identity).GetComponent <Spike>();
        spawningSpike.transform.parent = transform;
        spawningSpike.spikeManager     = this;

        if (autoSpawn)
        {
            spawnDelay = randomGenerator.Range(spawnMinDelay, spawnMaxDelay);
            SpawnSpikeIn(spawnDelay);
        }
    }
示例#32
0
    public void WaveSpawner()
    {
        // Spawn a drop
        CurrentDropTime += Time.deltaTime;
        if (CurrentDropTime > DropTime && Wave.DropsSpawnAmount != Wave.DropsAmount)
        {
            EnemyManager.AddObserver(Drop.GetComponent <JuiceDrop>());
            CurrentDropTime = 0f;
            DropTime        = RandomHelper.NextRandom(3, 5);
        }

        // Spawn a spike
        CurrentSpikeTime += Time.deltaTime;
        if (CurrentSpikeTime > SpikeTime && Wave.SpikesSpawnAmount != Wave.SpikesAmount)
        {
            EnemyManager.AddObserver(Spike.GetComponent <Spike>());
            CurrentSpikeTime = 0;
            SpikeTime        = RandomHelper.NextRandom(3, 5);
        }

        // Spawn a fire
        CurrentFireTime += Time.deltaTime;
        if (CurrentFireTime > FireTime && Wave.FiresSpawnAmount != Wave.FireAmount)
        {
            EnemyManager.AddObserver(Fire.GetComponent <Fire>());
            CurrentFireTime = 0f;
            FireTime        = RandomHelper.NextRandom(3, 5);
        }

        // Spawn the boss
        if (Wave.DropsSpawnAmount == Wave.DropsAmount && Wave.SpikesSpawnAmount == Wave.SpikesAmount && Wave.FiresSpawnAmount == Wave.FireAmount && Wave.WaveLevel == Wave.FinalWaveLevel)
        {
            LevelState = LevelState.Boss;
            // Or Spawn another wave
        }
        else if (Wave.DropsSpawnAmount == Wave.DropsAmount && Wave.SpikesSpawnAmount == Wave.SpikesAmount && Wave.FiresSpawnAmount == Wave.FireAmount)
        {
            GameObject.FindWithTag("GameController").GetComponent <GameController>().Restart();
        }

        // Notify all enemies
        //EnemyManager.Notify(Player);
    }
示例#33
0
 /*
  * Initializes position to spawn new spike
  */
 public void init(Lane spawnLane, Swirlie swirlie, Spike parent = null)
 {
     _swirlie = swirlie;
     _parent = parent;
     _head = getHead();
     _invulnerable = swirlie != null;
     if (_parent == null)
     {
         gameObject.transform.position = (spawnLane.Front - spawnLane.Back) * DEFAULT_DIST_FROM_BACK + spawnLane.Back;
     }
     else
     {
         gameObject.transform.position = (spawnLane.Front - _parent.gameObject.transform.position).normalized * spikePrefab.renderer.bounds.size.x + _parent.gameObject.transform.position;
     }
     swirlie.TailSpike = this;
     _startTime = Time.time;
     _currentLane = spawnLane;
     _alive = true;
     transform.rotation = Quaternion.LookRotation(_currentLane.Normal);
 }
    public void Awake()
    {
        this.spriteRenderer = GetComponent<SpriteRenderer>();
        // Set random sprite
        blockNum = Random.Range(1, 4);
        this.spriteRenderer.sprite = Instantiate(Resources.Load<Sprite>("Sprites/Environment/block" + blockNum)) as Sprite;

        // Spikes
        if(!starterBlock) {
            if(Random.Range(0, 10) == 0) {
                GameObject spikeGO = (GameObject)Instantiate(spikePrefab, transform.position + Vector3.up + Vector3.back, Quaternion.Euler(new Vector3(0f, 0f, -90f)));
                spikeGO.transform.parent = transform;
                spikeSprite = spikeGO.GetComponent<Sprite>();
                spike = spikeGO.GetComponent<Spike>();
                spikes = true;
            } else if(Random.Range(0, 8) == 0) {
                battery = (GameObject)Instantiate(batteryPrefab, transform.position + Vector3.up * 1.5f + Vector3.back, Quaternion.identity);
                ((Rigidbody2D)battery.GetComponent<Rigidbody2D>()).velocity = Vector2.up * GameManager.instance.scrollSpeed;
                battery.transform.parent = transform;
            }
        }
        // Velocity
        GetComponent<Rigidbody2D>().velocity = Vector2.up * GameManager.instance.scrollSpeed;
    }
示例#35
0
        protected virtual TestResult ExecuteTest(Spike.Scripting.Hosting.CSharp.Context ctx, string test)
        {
            Stopwatch sw;

            try
            {
                sw = Stopwatch.StartNew();
                ctx.ExecuteFile(test);
                sw.Stop();
            }
            catch (Exception ex)
            {
                return new TestResult { Error = ex.GetBaseException().Message };
            }

            return new TestResult { Score = sw.ElapsedMilliseconds + "ms" };
        }
示例#36
0
 /*
  * Adds Spike
  */
 private void AddSpike()
 {
     GameObject c = (GameObject)Instantiate(spikePrefab);
     _child = c.GetComponent<Spike>();
     _child.init(_currentLane,_swirlie,this);
     _head.NumOfSpikes++;
 }
示例#37
0
 /*
  * Removes Spike
  */
 private void RemoveSpike(Spike s)
 {
     if (s == _child)
     {
         _child = null;
         _invulnerable = false;
     }
     _swirlie.TailSpike = this;
     _head.NumOfSpikes--;
     _startTime = Time.time;
 }