Beispiel #1
0
    void PlayerEnteredTile(TileMovingObjectScript TileObject)
    {
        if (TileObject.SpecialObjectIgnore)
        {
            return;
        }
        var   rotator      = TileObject.GetComponentInChildren <AngleRotator>();
        bool  motionResult = false;
        float motionspeed  = 7f;

        switch (BlockComponent.DataBlock.Rotation)
        {
        case StinkyFile.SRotation.NORTH:
            motionResult = TileObject.WalkToTile(TileObject.TileX, TileObject.TileY - 1, motionspeed);
            break;

        case StinkyFile.SRotation.SOUTH:
            motionResult = TileObject.WalkToTile(TileObject.TileX, TileObject.TileY + 1, motionspeed);
            break;

        case StinkyFile.SRotation.WEST:
            motionResult = TileObject.WalkToTile(TileObject.TileX - 1, TileObject.TileY, motionspeed);
            break;

        case StinkyFile.SRotation.EAST:
            motionResult = TileObject.WalkToTile(TileObject.TileX + 1, TileObject.TileY, motionspeed);
            break;
        }
        soundEffects.Play(0);
        if (!motionResult && TileObject.TryGetComponent <Player>(out _))
        {
            Player.KillAllPlayers();
            return;
        }
        if (rotator != null)
        {
            rotator.Rotate(BlockComponent.DataBlock.Rotation);
        }
    }