Beispiel #1
0
    bool TryMove(TileMovingObjectScript TileObject, StinkyFile.SRotation Direction)
    {
        bool motionResult = TileObject.MoveInDirection(Direction, 1, 7);

        if (motionResult)
        {
            soundEffects.Play(0);
            var rotator = TileObject.GetComponentInChildren <AngleRotator>();
            if (rotator != null)
            {
                rotator.Rotate(Direction);
            }
        }
        return(motionResult);
    }
Beispiel #2
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);
        }
    }