コード例 #1
0
    public EffectTowerHit(SYTower tower, float dir, float size, Map m)
        : base(m)
    {
        size = MathHelper.Clamp(size, 0.2f, 2f);

        headMesh   = Mesh.CreateFromTexture(Art.Load("Res/cannon_head.png"));
        barrelMesh = Mesh.CreateFromTexture(Art.Load("Res/cannon_brl.png"));

        headMesh.FillColor   = true;
        barrelMesh.FillColor = true;

        headMesh.Color   = Color.White;
        barrelMesh.Color = Color.White;

        headMesh.Translate(tower.Position);
        headMesh.Scale(3f);
        headMesh.RotateZ(dir);

        barrelMesh.Translate(tower.Position);
        barrelMesh.Scale(2.1f);
        barrelMesh.RotateZ(dir);
        barrelMesh.Translate(1f, 0f);

        barrelMesh.Scale(1f);

        effectTimer.Reset(size / 7f);
    }
コード例 #2
0
ファイル: SYMap.cs プロジェクト: DuckMonster/Time-Dash-Re
    public SYTower SpawnTower(Vector2 point, int team, int id)
    {
        SYTower tower = new SYTower(id, team, point, this);

        towerList[id] = tower;

        return(tower);
    }
コード例 #3
0
ファイル: SYMap.cs プロジェクト: DuckMonster/Time-Dash-Re
    public SYTower SpawnTower(SYTowerPoint point, int team, int id)
    {
        SYTower tower = new SYTower(id, team, point, point.Position, this);

        towerList[id] = tower;

        return(tower);
    }
コード例 #4
0
 public override void Logic()
 {
     if (tower == null)
     {
         SYTower t = Map.GetActorAtPos <SYTower>(Position, Size);
         if (t != null)
         {
             tower = t;
             t.AddTowerArea(this);
         }
     }
 }
コード例 #5
0
    public override void Logic()
    {
        if (tower == null)
        {
            tower = Map.GetActorAtPos <SYTower>(Position, Size);
        }
        else
        {
            if (Map.LocalPlayer != null && Map.LocalPlayer.Team == tower.Team)
            {
                return;
            }

            if (Map.cameraController.secondaryObject == null)
            {
                bool localPlayer = BoundPlayers.Contains(Map.LocalPlayer);
                if (localPlayer)
                {
                    Map.cameraController.secondaryObject = tower;
                }
            }
            else if (Map.cameraController.secondaryObject == tower)
            {
                bool localPlayer = BoundPlayers.Contains(Map.LocalPlayer);
                if (!localPlayer)
                {
                    Map.cameraController.secondaryObject = null;
                }
            }

            if (!tower.IsAlive)
            {
                if (Map.cameraController.secondaryObject == tower)
                {
                    Map.cameraController.secondaryObject = null;
                }

                tower = null;
            }
        }
    }
コード例 #6
0
 public override void Finish()
 {
     tower = Map.SpawnTower(this, -1);
 }
コード例 #7
0
 public void Reset()
 {
     scrap = 0;
     tower = null;
 }
コード例 #8
0
    public override void MessageHandle(EZUDP.MessageBuffer msg)
    {
        try
        {
            if ((Protocol)msg.ReadShort() == Protocol.MapArgument)
            {
                switch ((Protocol_SY)msg.ReadShort())
                {
                case Protocol_SY.PlayerScrap:
                    (playerList[msg.ReadByte()] as SYPlayer).ReceiveScrap(msg.ReadByte());
                    break;

                case Protocol_SY.ScrapGainEffect:
                    AddEffect(new EffectGainScrap(msg.ReadVector2(), msg.ReadShort(), this));
                    break;

                case Protocol_SY.ScrapExistance:
                    CreateScrap(msg.ReadShort(), msg.ReadVector2(), msg.ReadVector2());
                    break;

                case Protocol_SY.ScrapCollect:
                {
                    SYScrap  scrap  = scrapList[msg.ReadShort()];
                    SYPlayer player = (SYPlayer)playerList[msg.ReadByte()];

                    player.CollectScrap(scrap);

                    break;
                }

                case Protocol_SY.ScrapReturn:
                    ((SYPlayer)playerList[msg.ReadByte()]).ReturnScrap(stashList[msg.ReadByte()]);
                    break;

                case Protocol_SY.StashScrapAmount:
                    stashList[msg.ReadByte()].SetScrap(msg.ReadShort());
                    break;

                case Protocol_SY.CreepExistance:
                    SpawnCreep((CreepType)msg.ReadByte(), msg.ReadByte(), msg.ReadVector2(), msg.ReadVector2());
                    break;

                case Protocol_SY.CreepPosition:
                    creepList[msg.ReadByte()].ReceivePosition(msg.ReadVector2(), msg.ReadVector2());
                    break;

                case Protocol_SY.CreepHit:
                    creepList[msg.ReadByte()].ReceiveHit(msg.ReadFloat(), msg.ReadFloat(), msg);
                    break;

                case Protocol_SY.CreepDie:
                    creepList[msg.ReadByte()].Die(msg.ReadVector2());
                    break;

                case Protocol_SY.CreepCustom:
                    creepList[msg.ReadByte()].ReceiveCustom(msg);
                    break;

                case Protocol_SY.TowerExistance:
                {
                    int id = msg.ReadByte();
                    //SYTowerPoint stash = stashList[msg.ReadByte()] as SYTowerPoint;

                    towerList[id] = new SYTower(id, msg.ReadByte(), msg.ReadVector2(), this);
                    break;
                }

                case Protocol_SY.TowerRotation:
                    towerList[msg.ReadByte()].ReceiveRotation(msg.ReadFloat());
                    break;

                case Protocol_SY.TowerTarget:
                    towerList[msg.ReadByte()].ReceiveTarget(msg.ReadByte());
                    break;

                case Protocol_SY.TowerShoot:
                    towerList[msg.ReadByte()].ReceiveShoot(msg.ReadVector2(), msg.ReadByte());
                    break;

                case Protocol_SY.TowerHit:
                    towerList[msg.ReadByte()].ReceiveHit(msg.ReadFloat(), msg.ReadFloat(), msg.ReadByte(), msg.ReadVector2());
                    break;

                case Protocol_SY.TowerDie:
                    towerList[msg.ReadByte()].ReceiveDie();
                    break;

                case Protocol_SY.BaseHit:
                    baseList[msg.ReadByte()].ReceiveHit(msg.ReadFloat(), msg.ReadFloat(), msg.ReadByte(), msg.ReadVector2());
                    break;
                }
            }
        }
        catch (Exception e)
        {
            Log.Write(ConsoleColor.Yellow, "Packet corrupt!");
            Log.Write(ConsoleColor.Red, e.Message);
            Log.Write(ConsoleColor.DarkRed, e.StackTrace);
        }

        if (msg != null)
        {
            msg.Reset();
        }

        base.MessageHandle(msg);
    }
コード例 #9
0
 public void TowerDestroyed(SYTower t)
 {
     towerList[t.id] = null;
     t.Dispose();
 }
コード例 #10
0
ファイル: SYMap.cs プロジェクト: DuckMonster/Time-Dash-Re
 public void TowerDestroyed(SYTower t)
 {
     towerList[t.id] = null;
 }