public void MakeMoney()
        {
            if (WaveManager.ActiveTeam == GetTeam())
            {
                UpdateMapPosition();

                int ProdBase = MyRock.ProductionAmount.get();
                if (IsUpdgraded)
                {
                    ProdBase += 100;
                }
                if (WaveManager.CurrentWave > 15)
                {
                    ProdBase *= 2;
                }

                if (BonusProduction)
                {
                    ProdBase *= WaveManager.GameSpeed;
                }
                else
                {
                    BonusProduction = true;
                }

                int Production = ProdBase;


                if (Production > 0)
                {
                    FactionManager.AddCells(FactionNumber, Production);
                    TextParticleSystem.AddParticle(new Vector3(Position.X(), Y, Position.Y()), Production.ToString(), (byte)GetTeam(), TextParticleSystemIcons.CellsTexture);
                }
            }
        }
Пример #2
0
 public void MakeMoney()
 {
     if (WaveManager.ActiveTeam == GetTeam())
     {
         FactionManager.AddEnergy(FactionNumber, Production);
         FactionManager.AddCells(FactionNumber, Production);
         TextParticleSystem.AddParticle(new Vector3(Position.X(), Y, Position.Y()), Production.ToString(), (byte)GetTeam(), TextParticleSystemIcons.CellsTexture);
     }
 }
        public override void Interact(PlayerShip p)
        {
            IsUpdgraded = true;
            FactionManager.AddCells(p.FactionNumber, -UpgradeCost);

            HullDamage   = 0;
            ShieldDamage = 0;

            Upgrade();

            base.Interact(p);
        }
        public override void Interact(PlayerShip p)
        {
            if (miningPlatform == null && FactionManager.CanBuildMiningPlatform(p.FactionNumber))
            {
                Vector3 P3 = new Vector3(Position.X(), 0, Position.Y());
                for (int i = 0; i < 40; i++)
                {
                    LineParticleSystem.AddParticle(P3, P3 + Rand.V3() * 1000, TeamInfo.GetColor(p.GetTeam()));
                }

                MiningPlatform m = FactionManager.GetMiningPlatform(p.FactionNumber);
                ParentLevel.AddObject(m);
                m.Position.set(Position.get());
                setPlatform(m);

                SoundManager.Play3DSound("PlayerBuildMiningRing",
                                         new Vector3(m.Position.X(), Y, m.Position.Y()), 0.25f, 500, 1);

                if (p.PlacedStartingMineralRock)
                {
                    FactionManager.AddCells(p.FactionNumber, -FactionManager.GetMiningPlatformCost(p.FactionNumber));
                    FactionManager.SetBuildingPlatform(p.FactionNumber, m);
                }
                else
                {
                    FactionManager.GetFaction(p.FactionNumber).MiningPlatformCounter = 0;
                    m.HullToughness *= 2;
                    m.SetAsStarting();
                    p.PlacedStartingMineralRock = true;
                    p.StartingMineralRock       = this;
                }

                p.LastPlacedPlatform.AddFirst(m);
                PathFindingManager.AddMineralRock(m);
            }
            base.Interact(p);
        }
        public override bool APress(PlayerShip Ship, bool APrevious)
        {
            if (!APrevious)
            {
                {
                    int CardCost = CardCellsCost;
                    if (FactionCostIncreases.ContainsKey(Ship.FactionNumber))
                    {
                        CardCost += CardCellsCostIncrease * FactionCostIncreases[Ship.FactionNumber];
                    }

                    if (FactionManager.CanAfford(Ship.FactionNumber, CardCost) && Ship.CanPlaceTurret(TurretSize))
                    {
                        if (FactionCostIncreases.ContainsKey(Ship.FactionNumber))
                        {
                            FactionCostIncreases[Ship.FactionNumber]++;
                        }
                        else
                        {
                            FactionCostIncreases.Add(Ship.FactionNumber, 1);
                        }

                        FactionManager.AddCells(Ship.FactionNumber, -CardCost);
                        UnitTurret u = (UnitTurret)GetUnit(Ship.FactionNumber);
                        u.MyCard = this;
                        Ship.PlaceTurret(u);
                        return(true);
                    }
                    else
                    {
                        RedFlashAlpha = 1;
                    }
                }
            }
            return(false);
        }
        public override bool TriggerAsCurrent(BasicMarker m)
        {
            if (BasicMarker.SelectSound != null)
            {
                BasicMarker.SelectSound.Play(BasicMarker.SelectVolume, 0, 0);
            }

            Faction f = FactionManager.Factions[ParentShip.FactionNumber];

            FlashAlpha = 1;

            if (FactionManager.GetFaction(ParentShip.FactionNumber).PickingCards)
            {
                if (Selected)
                {
                    for (int i = 0; i < f.Cards.Count; i++)
                    {
                        if (f.Cards[i] == MyCard)
                        {
                            f.Cards[i] = null;
                            Selected   = false;
                            return(true);
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < f.Cards.Count; i++)
                    {
                        if (f.Cards[i] == null)
                        {
                            f.Cards[i] = MyCard;
                            Selected   = true;
                            break;
                        }
                    }

                    if (!Selected)
                    {
                        f.Cards.Add(MyCard);
                        Selected = true;
                    }

                    if (Faction.MaxCards == f.Cards.Count)
                    {
                        for (int i = 0; i < f.Cards.Count; i++)
                        {
                            if (f.Cards[i] == null)
                            {
                                return(true);
                            }
                        }

                        ParentShip.ReadyMenu();
                    }
                }
            }
            else
            {
                int CardCost = MyCard.CardCellsCost;
                if (MyCard.FactionCostIncreases.ContainsKey(ParentShip.FactionNumber))
                {
                    CardCost += MyCard.CardCellsCostIncrease * MyCard.FactionCostIncreases[ParentShip.FactionNumber];
                }

                if (FactionManager.CanAfford(ParentShip.FactionNumber, CardCost) && ParentShip.CanPlaceTurret(MyCard.TurretSize))
                {
                    if (MyCard.FactionCostIncreases.ContainsKey(ParentShip.FactionNumber))
                    {
                        MyCard.FactionCostIncreases[ParentShip.FactionNumber]++;
                    }
                    else
                    {
                        MyCard.FactionCostIncreases.Add(ParentShip.FactionNumber, 1);
                    }

                    FactionManager.AddCells(ParentShip.FactionNumber, -CardCost);
                    UnitTurret u = (UnitTurret)MyCard.GetUnit(ParentShip.FactionNumber);
                    u.MyCard = MyCard;
                    ParentShip.PlaceTurret(u);
                    //ParentFrame.DeActivate();
                }
                else
                {
                    ErrorAlpha = 1;
                }
            }

            return(base.TriggerAsCurrent(m));
        }