public void DidSelectOilSlick(PubSubListenerEvent e)
    {
        OilSlick oilSlick = ((GameObject)e.value).gameObject.GetComponent <OilSlick>();

        oilSlickDetailPanel.SetOilSlick(oilSlick);
        oilSlickDetailPanel.gameObject.SetActive(true);
    }
    public void PurchaseOilSlick(OilSlick oilSlick)
    {
        if (!oilSlick)
        {
            return;
        }

        Debug.Log("Purchase oil slick: " + oilSlick);
        (bool, bool, float)affordability = PriceToBuyOilSlick(oilSlick);
        float oilSlickCost = affordability.Item3;

        if (AttemptPurchase(oilSlickCost))
        {
            var oilExtractor = Instantiate(OilExtractorPrefab);
            oilExtractor.transform.position = oilSlick.transform.position;
            oilExtractor.GetComponent <OilExtractor>().SetOilSlick(oilSlick);
            purchasedOilSlicks.Add(oilSlick);

            if (oilSlick.type == OilSlickType.Land)
            {
                CurrentOilDerricks += 1;
            }
            else
            {
                CurrentOilRigs += 1;
            }

            oilExtractor.GetComponent <SelectableSprite>().TriggerBoxSelect();
            PublishEquipmentUpdate();
        }
    }
示例#3
0
文件: AOilSlick.cs 项目: znsoft/AiCup
 public AOilSlick(OilSlick slick)
 {
     X                 = slick.X;
     Y                 = slick.Y;
     Radius            = slick.Radius;
     RemainingLifetime = slick.RemainingLifetime;
 }
    public void DidDeselectOilSlick(PubSubListenerEvent e)
    {
        OilSlick oilSlick = ((GameObject)e.value).gameObject.GetComponent <OilSlick>();

        if (oilSlickDetailPanel.oilSlick == oilSlick)
        {
            oilSlickDetailPanel.gameObject.SetActive(false);
        }
    }
示例#5
0
 public void traveledOnOil(OilSlick oil = null)
 {
     if (oilTicks > 0)
     {
         return;
     }
     oilTicks = game.MaxOiledStateDurationTicks;
     if (null != oil)
     {
         oilTicks = Math.Min(oilTicks, oil.RemainingLifetime);
     }
 }
示例#6
0
        private OilSlick[] ReadOilSlicks()
        {
            int oilSlickCount = ReadInt();

            if (oilSlickCount < 0)
            {
                return(null);
            }

            OilSlick[] oilSlicks = new OilSlick[oilSlickCount];

            for (int oilSlickIndex = 0; oilSlickIndex < oilSlickCount; ++oilSlickIndex)
            {
                oilSlicks[oilSlickIndex] = ReadOilSlick();
            }

            return(oilSlicks);
        }
示例#7
0
        private void WriteOilSlick(OilSlick oilSlick)
        {
            if (oilSlick == null)
            {
                WriteBoolean(false);
                return;
            }

            WriteBoolean(true);

            WriteLong(oilSlick.Id);
            WriteDouble(oilSlick.Mass);
            WriteDouble(oilSlick.X);
            WriteDouble(oilSlick.Y);
            WriteDouble(oilSlick.SpeedX);
            WriteDouble(oilSlick.SpeedY);
            WriteDouble(oilSlick.Angle);
            WriteDouble(oilSlick.AngularSpeed);
            WriteDouble(oilSlick.Radius);
            WriteInt(oilSlick.RemainingLifetime);
        }
    public (bool, bool, float) PriceToBuyOilSlick(OilSlick oilSlick)
    {
        float money        = CurrentMoney;
        bool  allowedToBuy = true;
        float cost         = 0;

        if (oilSlick.type == OilSlickType.Land)
        {
            allowedToBuy = CurrentOilDerricks < MaximumOilDerricks;
            cost         = BaseCostDerrick * (float)Math.Pow(1.1, CurrentOilDerricks);

            if (CurrentOilDerricks == 0)
            {
                cost         = 0;
                allowedToBuy = true;
            }
        }
        else
        {
            allowedToBuy = CurrentOilRigs < MaximumOilRigs;

            int level = 1;
            if (oilSlick.level == OilSlickLevel.Sea2)
            {
                level = 2;
            }
            else if (oilSlick.level == OilSlickLevel.Sea3)
            {
                level = 3;
            }
            else if (oilSlick.level == OilSlickLevel.Sea4)
            {
                level = 4;
            }

            cost = BaseCostRig * (float)Math.Pow(1.1, CurrentOilRigs) * (float)Math.Pow(3.5, level);
        }

        return(allowedToBuy, money >= cost, cost);
    }
    public void SetOilSlick(OilSlick incomingOilSlick)
    {
        if (ExtractedOilSlick != null)
        {
            return;
        }

        ExtractedOilSlick = incomingOilSlick;
        incomingOilSlick.transform.parent = transform;
        ExtractedOilSlick.gameObject.SetActive(false);

        if (ExtractedOilSlick.type == OilSlickType.Land)
        {
            oilRigGraphic.SetActive(false);
            oilDerrickGraphic.SetActive(true);
            gameObject.GetComponent <SelectableSprite>().SelectionType = "oilderrick";
        }
        else
        {
            oilRigGraphic.SetActive(true);
            oilDerrickGraphic.SetActive(false);
            gameObject.GetComponent <SelectableSprite>().SelectionType = "oilrig";
        }
    }
示例#10
0
        public static void Main(string[] args)
        {
            try
            {
                if (args.Length > 0)
                {
                    if (args[0] == "train" && args.Length == 1)
                    {
                        Train.Run(false, null, null);
                    }

                    else if (args[0] == "train" && args.Length == 3)
                    {
                        Train.Run(true, double.Parse(args[1]), double.Parse(args[2]));
                    }

                    else
                    {
                        Console.WriteLine(@"To use command line arguments,");
                        Console.WriteLine(@"For Resilient training: MarketMadness train");
                        Console.WriteLine(@"For sigmoid BPN:        MarketMadness train [learn rate] [momentum]");
                        return;
                    }
                }
                else
                {
                    var startDate = GetQuotes.GetMaxDate();

                    string choice;

                    Console.WriteLine(@"1 - Scrape Company Data");
                    Console.WriteLine(@"2 - Get Quotes (last day: " + startDate.ToString("D"));
                    Console.WriteLine(@"3 - Pull down Historical Raptures");
                    Console.WriteLine(@"4 - Check Weather");
                    Console.WriteLine(@"5 - Start Oil Slick");
                    Console.WriteLine(@"6 - Build New Training Set");
                    Console.WriteLine(@"7 - Prune against Training Set");
                    Console.WriteLine(@"8 - Train");
                    Console.WriteLine(@"9 - Make Yourself Rich (Run Network on current data)");

                    Console.Write(@"Enter Choice: ");

                    choice = Console.ReadLine();

                    switch (choice)
                    {
                    case "1":
                        ScrapeNYSE.Start();
                        CompanyStatScraper.Start();
                        break;

                    case "2":
                        GetQuotes.PullAll(startDate.AddDays(1), DateTime.Now);
                        break;

                    case "3":
                        PullDownRapture.Historical();
                        break;

                    case "4":
                        RainMaker.Dance();
                        break;

                    case "5":
                        OilSlick.PerformOilSlick();
                        break;

                    case "6":
                        CreateTraining.Create();
                        break;

                    case "7":
                        PruneTraining.Run();
                        break;

                    case "8":

                        Console.Write(@"(B)PN or (R)esilient: ");
                        string lm = Console.ReadLine();

                        if (lm == "R")
                        {
                            Train.Run(false, null, null);
                        }

                        else if (lm == "B")
                        {
                            Console.Write(@"Learning Rate [.0001]: ");
                            var rate = Console.ReadLine();

                            Console.Write(@"Momentum [0.0]: ");
                            var momentum = Console.ReadLine();

                            Train.Run(true, rate == "" ? 0.0001 : double.Parse(rate), momentum == "" ? 0.0 : double.Parse(momentum));
                        }
                        else
                        {
                            Console.WriteLine(@"B or R Only!!!");
                        }

                        break;

                    case "9":
                        MakeMeRich.Go();
                        break;

                    default:
                        throw new Exception(choice + " is not a valid entry!!!");
                    }

                    Console.WriteLine(@"Done");
                }
            }
            catch (Exception ex)
            {
                while (ex != null)
                {
                    Train.Log("\nError:\n");
                    Train.Log(ex.Message);
                    Train.Log(ex.StackTrace);

                    ex = ex.InnerException;
                }
            }
        }
示例#11
0
 public void GetPowerUps()
 {
     bSpawner = GetComponent <BombSpawner>();
     oil      = GetComponent <OilSlick>();
     sRockets = GetComponent <RocketsManager>();
 }
示例#12
0
        protected virtual void FinishEffect(Point3D p, Map map, Mobile from)
        {
            from.RevealingAction();

            int     count   = Utility.RandomMinMax(1, 6);
            int     onBoat  = 0;
            string  monster = "";
            Point3D SpawnAt = p;

            switch (Utility.Random(12))
            {
            case 0: monster = "AquaticGhoul"; SpawnAt = from.Location; onBoat = 1; break;

            case 1: monster = "SeaWeeder"; SpawnAt = from.Location; onBoat = 1; break;

            case 2: monster = "SeaSnake"; break;

            case 3: monster = "WaterBeetle"; break;

            case 4: monster = "WaterStrider"; break;

            case 5: monster = "OilSlick"; break;

            case 6: monster = "FloatingEye"; break;

            case 7: monster = "SeaTroll"; SpawnAt = from.Location; onBoat = 1; break;

            case 8: monster = "WaterElemental"; break;

            case 9: monster = "GiantCrab"; break;

            case 10: monster = "GiantLamprey"; break;

            case 11: monster = "Locathah"; SpawnAt = from.Location; onBoat = 1; break;
            }

            for (int i = 0; map != null && i < count; ++i)
            {
                BaseCreature spawn = new AquaticGhoul();

                if (monster == "AquaticGhoul")
                {
                    spawn = new AquaticGhoul();
                }
                else if (monster == "SeaWeeder")
                {
                    spawn = new SeaWeeder();
                }
                else if (monster == "SeaSnake")
                {
                    spawn = new SeaSnake();
                }
                else if (monster == "WaterBeetle")
                {
                    spawn = new WaterBeetle();
                }
                else if (monster == "WaterStrider")
                {
                    spawn = new WaterStrider();
                }
                else if (monster == "OilSlick")
                {
                    spawn = new OilSlick();
                }
                else if (monster == "FloatingEye")
                {
                    spawn = new FloatingEye();
                }
                else if (monster == "SeaTroll")
                {
                    spawn = new SeaTroll();
                }
                else if (monster == "WaterElemental")
                {
                    spawn = new WaterElemental();
                }
                else if (monster == "GiantCrab")
                {
                    spawn = new GiantCrab();
                }
                else if (monster == "GiantLamprey")
                {
                    spawn = new GiantLamprey();
                }
                else if (monster == "Locathah")
                {
                    spawn = new Locathah();
                }

                Spawn(SpawnAt, map, spawn, onBoat);

                spawn.WhisperHue = 999;                 // SO TASK MANAGER DELETES THEM EVENTUALLY
                spawn.Combatant  = from;
            }

            Delete();
        }
 public bool TestFindPath(City city, OilSlick oilSlick)
 {
     return(false);
 }
示例#14
0
 public void SetOilSlick(OilSlick oilSlick)
 {
     this.oilSlick = oilSlick;
     Refresh();
 }