public void InstantiateGenerators() { Generator generator1 = new CircleGenerator(); generator1.SetPowerLevel(5); Generator generator2 = new CircleGenerator(); generator2.SetPowerLevel(3); Generator generator3 = new TriangleGenerator(); generator3.SetPowerLevel(0); Generator generator4 = new OctagonGenerator(); generator4.SetPowerLevel(10); generators = new List <Generator> { generator1, generator2, generator3, generator4, }; }
public void InstantiateGenerators() { Generator generator1 = new CircleGenerator(); generator1.SetPowerLevel(4); Generator generator2 = new TriangleGenerator(); generator2.SetPowerLevel(5); Generator generator3 = new TriangleGenerator(); generator3.SetPowerLevel(2); Generator generator4 = new RectangleGenerator(); generator4.SetPowerLevel(2); Generator generator5 = new RectangleGenerator(); generator5.SetPowerLevel(5); generators = new List <Generator>() { generator1, generator2, generator3, generator4, generator5, }; }
public void InstantiateGenerators() { //Changed to Max Level of 2 Generator generator1 = new CircleGenerator(); generator1.SetPowerLevel(2); Generator generator2 = new CircleGenerator(); generator2.SetPowerLevel(0); //Changed to 2 Generator generator3 = new TriangleGenerator(); generator3.SetPowerLevel(2); //Changed to Max Level / 2 = 4 Generator generator4 = new OctagonGenerator(); generator4.SetPowerLevel(4); generators = new List <Generator> { generator1, generator2, generator3, generator4, }; }
public GeneratorWindow(GameCanvas parent, Editor editor, Vector2d pos) : base(parent, null) { Title = $"Line Generator"; SetSize(450, 500); DisableResizing(); /*_typecontainer = new CollapsibleList(this) * { * Dock = Dock.Left, * AutoSizeToContents = false, * Width = 100, * Margin = new Margin(0, 0, 5, 0) * };*/ MakeModal(true); if (!initialised) { gen_Circle = new CircleGenerator("Circle Generator", 10.0, pos, 50, false); gen_10pc = new TenPCGenerator("10PC Generator", new Vector2d(1.0, 1.0), 0.0); CurrentGenerator = GeneratorType.TenPC; } Setup(); initialised = true; }
protected override bool CheckIntern(BaseReqArgument bra) { bra.NeedMapException(); if (bra.sett == "near") { foreach (var pos in CircleGenerator.Gen(bra.pos, 1)) { if (S.Players().OverlayHighest("frontier", pos) == bra.player) { return(true); } } return(false); } var p = S.Players().OverlayHighest("frontier", bra.pos); switch (bra.sett) { case "own": return(p == bra.player); case "enemy": return(p != null && p != bra.player); case "none": return(p == null); default: throw new ArgumentException(bra.sett + " is unknown."); } }
public void InstantiateGenerators() { //Stegosaurus has 14 stock threshold //Total Power / Perimeter = Stock Threshold //Total Power = 14 * 10000 = 140000 Generator generator1 = new CircleGenerator(); generator1.SetPowerLevel(2); // 50000 * 2 = 100000 Generator generator2 = new CircleGenerator(); generator2.SetPowerLevel(0); // 50000 * 0 Generator generator3 = new TriangleGenerator(); generator3.SetPowerLevel(3); // 15000 * 3 = 45000 Generator generator4 = new OctagonGenerator(); generator4.SetPowerLevel(0); generators = new List <Generator> { generator1, generator2, generator3, generator4, }; }
public override void PreRun() { //load spell Spell spell = L.b.spells[action.data["waiting"]]; //calc size var points = CircleGenerator.Gen(initPos, mapElementInfo.CalcVisibleRange(initPos)); //collect move foreach (var pos in points) { //check them if (!player.fog.Visible(pos)) { continue; } if (!spell.reqTarget.Check(mapElementInfo, pos)) { continue; } Color(pos, 0); } }
private bool FindPos(Player player, UnitInfo unit, NVector pos, ActionHolder holder) { if (holder.data.ContainsKey("pos")) { return(true); } DataUnit dUnit = unit.dataUnit; //find next field foreach (var p in CircleGenerator.Gen(pos, unit.data.apMax / 5 * 2)) { if (AddGoal(unit, holder, p)) { return(true); } } //has nothing? //search the whole map for (int x = 0; x < GameMgmt.Get().data.map.width; x++) { for (int y = 0; y < GameMgmt.Get().data.map.height; y++) { if (AddGoal(unit, holder, new NVector(x, y, pos.level))) { return(true); } } } //has a field? unit.SetLastInfo(S.T("actionRepeatErrorDestination", holder.DataAction().Name())); unit.SetWaitingAction(null); return(false); }
public void InstantiateGenerators() { Generator generator1 = new CircleGenerator(); generator1.SetPowerLevel(5); Generator generator2 = new CircleGenerator(); generator2.SetPowerLevel(1); Generator generator3 = new TriangleGenerator(); generator3.SetPowerLevel(0); // Changed to 0 to meet power threshold Generator generator4 = new TriangleGenerator(); generator4.SetPowerLevel(4); Generator generator5 = new TriangleGenerator(); generator5.SetPowerLevel(1); Generator generator6 = new RectangleGenerator(); generator6.SetPowerLevel(1); Generator generator7 = new RectangleGenerator(); generator7.SetPowerLevel(5); Generator generator8 = new OctagonGenerator(); generator8.SetPowerLevel(8); Generator generator9 = new OctagonGenerator(); generator9.SetPowerLevel(1); Generator generator10 = new OctagonGenerator(); generator10.SetPowerLevel(1); generators = new List <Generator> { generator1, generator2, generator3, generator4, generator5, generator6, generator7, generator8, generator9, generator10 }; }
// Use this for initialization void Start() { controller = GameObject.FindGameObjectWithTag("GameController").GetComponent <MainGenerator> (); anim = this.GetComponent <Animator> (); gen = GameObject.Find("Spawner").GetComponent <CircleGenerator> (); rb = this.GetComponent <Rigidbody2D> (); generatedEnemies = new List <GameObject> (); }
public void Clear(NVector pos, int radius) { //Debug.Log($"Clear {x},{y} for {radius}"); foreach (var p in CircleGenerator.Gen(pos, radius)) { Clear(p); } }
public GeneratorOptions <T> Circle <TProperty>( Expression <Func <T, TProperty> > propertyExpression, params TProperty[] list) { var generator = new CircleGenerator <TProperty>(list); AddConvention(propertyExpression, () => generator.GetRandomValue()); return(this); }
public void InstantiateGenerators() { Generator generator1 = new CircleGenerator(); generator1.SetPowerLevel(2); Generator generator2 = new CircleGenerator(); generator2.SetPowerLevel(2); Generator generator3 = new TriangleGenerator(); generator3.SetPowerLevel(2); Generator generator4 = new TriangleGenerator(); generator4.SetPowerLevel(3); Generator generator5 = new TriangleGenerator(); generator5.SetPowerLevel(1); Generator generator6 = new RectangleGenerator(); generator6.SetPowerLevel(5); Generator generator7 = new RectangleGenerator(); generator7.SetPowerLevel(5); Generator generator8 = new OctagonGenerator(); generator8.SetPowerLevel(7); Generator generator9 = new OctagonGenerator(); generator9.SetPowerLevel(2); Generator generator10 = new OctagonGenerator(); generator10.SetPowerLevel(1); generators = new List <Generator> { generator1, generator2, generator3, generator4, generator5, generator6, generator7, generator8, generator9, generator10 }; }
private List <Line> CreateCircle(string[] commandArgs, Position position, List <SavedPosition> savedPositions, List <Line> lines) { IGenerator generator; ICircleOptions circle = new Options(); circle.Fill = true; switch (commandArgs.Length) { // radius height block [position] case 4: circle.Radius = commandArgs[1].ToInt(); circle.Height = commandArgs[2].ToInt(); circle.Block = commandArgs[3]; circle.CenterX = position.X; circle.CenterY = position.Y; circle.CenterZ = position.Z; break; // radius height block position case 5: circle.Radius = commandArgs[1].ToInt(); circle.Height = commandArgs[2].ToInt(); circle.Block = commandArgs[3]; var center = savedPositions.Single(a => a.Name.Equals(commandArgs[4])).Position; circle.CenterX = center.X; circle.CenterY = center.Y; circle.CenterZ = center.Z; break; // radius height block x y z case 7: circle.Radius = commandArgs[1].ToInt(); circle.Height = commandArgs[2].ToInt(); circle.Block = commandArgs[3]; circle.CenterX = commandArgs[4].ToInt(); circle.CenterY = commandArgs[5].ToInt(); circle.CenterZ = commandArgs[6].ToInt(); break; default: var help = "create circle radius height block - center at current position\n" + "create circle radius height block [named position]\n" + "create circle radius height block x y z"; _minecraft.Status(help); return(new List <Line>()); break; } generator = new CircleGenerator(); lines = generator.Run((Options)circle); return(lines); }
private List <Line> CreateRing(string[] commandArgs, Position position, List <SavedPosition> savedPositions, List <Line> lines) { IGenerator generator; ICircleOptions ring = new Options(); ring.Fill = false; switch (commandArgs.Length) { // radius height block [position] case 4: ring.Block = commandArgs[3]; ring.Radius = commandArgs[1].ToInt(); ring.Height = commandArgs[2].ToInt(); ring.CenterX = position.X; ring.CenterY = position.Y; ring.CenterZ = position.Z; break; // radius height block position case 5: ring.Block = commandArgs[3]; var center = savedPositions.Single(a => a.Name.Equals(commandArgs[4])).Position; ring.Radius = commandArgs[1].ToInt(); ring.Height = commandArgs[2].ToInt(); ring.CenterX = center.X; ring.CenterY = center.Y; ring.CenterZ = center.Z; break; // radius height block x y z case 7: ring.Block = commandArgs[3]; ring.Radius = commandArgs[1].ToInt(); ring.Height = commandArgs[2].ToInt(); ring.CenterX = commandArgs[4].ToInt(); ring.CenterY = commandArgs[5].ToInt(); ring.CenterZ = commandArgs[6].ToInt(); break; default: _minecraft.Status("\ncreate ring syntax\n" + "create ring radius height block - current position\n" + "create ring radius height block [named position]\n" + "create ring radius height block x y z"); return(new List <Line>()); } generator = new CircleGenerator(); lines = generator.Run((Options)ring); return(lines); }
public override void Develop(Player player) { //get town var pos = S.Towns().GetByPlayer(player.id)[0].pos; var list = CircleGenerator.Gen(pos, 20); foreach (var p in list) { if (S.Unit().Free(p)) { GameMgmt.Get().unit.Create(player.id, "christkind", p).FinishConstruct(); return; } } }
public override void FinishConstruct() { base.FinishConstruct(); UpdateConnectedImage(); //add border Player().overlay.Add("frontier", CircleGenerator.Gen(Pos(), baseData.visibilityRange), 1); Town().overlay.Add("boundary", CircleGenerator.Gen(Pos(), baseData.visibilityRange), 1); //add worker if (dataBuilding.worker > 0) { Town().AddRes(C.Inhabitant, (int)Math.Ceiling(dataBuilding.worker / 4f), ResType.Gift); } }
protected void Circle(CircleGenerator circle) { var kernel = compute.FindKernel("Circle"); compute.SetMatrix("_Transform", transform.localToWorldMatrix); compute.SetFloat("_DT", Time.deltaTime); var center = transform.InverseTransformPoint(circle.transform.position); compute.SetVector("_CircleCenter", center); var mag = transform.localScale.magnitude; compute.SetFloat("_CircleRadius", circle.Radius / mag); compute.SetFloat("_CircleWidth", circle.Width / mag); KernelGrids(kernel); }
private static List <Line> CreateCircle(IMinecraftCommandService commandService, string[] commandArgs, Position position, List <SavedPosition> savedPositions) { ICircleOptions circle = new Options { Fill = true }; var location = position; switch (commandArgs.Length) { // radius height(Y) block [position] case 4: circle.Radius = commandArgs[1].ToInt(); circle.Height = commandArgs[2].ToInt(); circle.Block = commandArgs[3]; break; case 5: // radius height(Y) block savedposition case 7: // radius height(Y) block x y z circle.Radius = commandArgs[1].ToInt(); circle.Height = commandArgs[2].ToInt(); circle.Block = commandArgs[3]; location = location.GetAbsolutePosition(commandArgs.Skip(4).Take(3), savedPositions); break; default: var help = "\nCREATE CIRCLE\n" + "create circle radius height(Y) block - center at current position\n" + "create circle radius height(Y) block [named position]\n" + "create circle radius height(Y) block x y z"; commandService.Status(help); return(new List <Line>()); } circle.Start = location.ToPoint(); IGenerator generator = new CircleGenerator(); return(generator.Run((Options)circle)); }
/// <summary> /// Queues up a wave of enemies per player on a circle around the screen. If not player specific, there /// will be 1 CircleGenerator with NumberOfPlayers groups, if it is player specific, there will be one /// group from four separate CircleGenerators, with enemies of different players being different sizes in the /// same positions. /// </summary> /// <param name="enemyType"> The type of enemy to spawn.</param> /// <param name="playerSpecifc">If true, each spawn can only be damaged by the player who shares a /// colour with it.</param> void CirclesWave(EnemyType enemyType, bool playerSpecifc) { ICollection <IGenerator> wave; CircleGenerator g; if (!playerSpecifc) { wave = new LinkedList <IGenerator>(); g = new CircleGenerator(model.NumberOfPlayers); g.EnemyHealth = 1 + LinearDifficulty(5, 0); g.EnemySize = 20; g.EnemySizeVariance = LinearDifficulty(5, 10); g.EnemyType = enemyType; g.Frequency = model.Music.ClicksPerBeat / 2; g.GroupSize = 2 + LinearDifficulty(8, 10); g.MultiplayerAdjustment = 0; wave.Add(g); waves.Enqueue(wave); } else { foreach (MainGun p in model.ActivePlayers) { wave = new LinkedList <IGenerator>(); g = new CircleGenerator(1); g.EnemyHealth = 1 + LinearDifficulty(5, 0); g.EnemySize = 15 + 2 * p.PlayerId; g.EnemySizeVariance = LinearDifficulty(5, 10); g.EnemyType = enemyType; g.Frequency = model.Music.ClicksPerBeat; g.PlayerSpecific = true; g.TargetPlayer = p.PlayerId; g.GroupSize = 2 + LinearDifficulty(15, 5); g.MultiplayerAdjustment = 0; wave.Add(g); waves.Enqueue(wave); } } }
public void InstantiateGenerators() { //Triceratops has 16 stock threshold //Total Power / Perimeter = Stock Threshold //Total Power = 16 * 12000 = 192000 //Oh look, 192000 is pretty close to 200000... I wonder how I can reach that easily. //This one uses the neat Floor(Total Power / Perimeter) to reach threshold. Generator generator1 = new CircleGenerator(); generator1.SetPowerLevel(2); // 50000 * 2 = 100000 Generator generator2 = new TriangleGenerator(); generator2.SetPowerLevel(2); // 15000 * 2 = 30000 Generator generator3 = new TriangleGenerator(); generator3.SetPowerLevel(2); // 15000 * 2 = 30000 Generator generator4 = new RectangleGenerator(); generator4.SetPowerLevel(1); // 10000 * 2 * 1 = 20000 Generator generator5 = new RectangleGenerator(); generator5.SetPowerLevel(1); // 10000 * 2 * 1 = 20000 generators = new List <Generator>() { generator1, generator2, generator3, generator4, generator5, }; }
/// <summary> /// Destroy it /// </summary> public override void Kill() { //todo get ress back //remove border Player().overlay.Add("frontier", CircleGenerator.Gen(Pos(), baseData.visibilityRange), -1); Town().overlay.Add("boundary", CircleGenerator.Gen(Pos(), baseData.visibilityRange), -1); GameMgmt.Get().data.buildings.Remove(data); GameMgmt.Get().building.buildings.Remove(this); L.b.animations.Create("explosion", Pos()); Destroy(gameObject); Debug.Log($"Kill building {name} at {Pos()}"); //has modi? if (dataBuilding.modi.Count > 0) { S.Map().PathFinding(Pos().level).ResetAll(); } //reset images? UpdateConnectedImage(); }
public void InstantiateGenerators() { //T-Rex has 20 stock threshold //Total Power / Perimeter = T-Rex Stock Threshold //Total Power = 20 * 15000 = 300000 //Circle Generator maximum is 2 Generator generator1 = new CircleGenerator(); generator1.SetPowerLevel(2); // 50000 * 2 = 100000 Generator generator2 = new CircleGenerator(); generator2.SetPowerLevel(2); // 50000 * 2 = 100000 //Triangle Generator Max level is 3 Generator generator3 = new TriangleGenerator(); generator3.SetPowerLevel(2); // 15000 * 2 // These work well. Generator generator4 = new TriangleGenerator(); generator4.SetPowerLevel(2); // 15000 * 2 Generator generator5 = new TriangleGenerator(); generator5.SetPowerLevel(0); // 15000 * 0 Generator generator6 = new RectangleGenerator(); generator6.SetPowerLevel(1); // 10000 * 2 * 1 = 20000 Generator generator7 = new RectangleGenerator(); generator7.SetPowerLevel(1); // 10000 * 2 * 1 = 20000 //8 Max Generator generator8 = new OctagonGenerator(); generator8.SetPowerLevel(0); // 2000 * 2 * 0 = 0 Generator generator9 = new OctagonGenerator(); generator9.SetPowerLevel(0); // 2000 * 0 = 0 Generator generator10 = new OctagonGenerator(); generator10.SetPowerLevel(0); // 2000 * 0 = 0 generators = new List <Generator> { generator1, generator2, generator3, generator4, generator5, generator6, generator7, generator8, generator9, generator10 }; }
/// <summary> /// Chooses a random generator type and enemy type per player and queues them. /// </summary> /// <param name="useAllSides">False if only each player's own side should be used to spawn, true if /// there should be a chance of using a random side.</param> /// <param name="playerSpecifc">If true, each spawn can only be damaged by the player who shares a /// colour with it.</param> void RandomWave(bool useAllSides, bool playerSpecifc) { ICollection <IGenerator> wave = new LinkedList <IGenerator>(); AbstractGenerator g; foreach (MainGun p in model.ActivePlayers) { int side = p.PlayerId; // If useAllSides, sometimes choose a different side. if (useAllSides && random.Next(2) == 0) { side = random.Next(0, 3); } //Choose the type of generator. int genType = random.Next(3); switch (genType) { case 0: g = new CircleGenerator(1); g.GroupSize = 20; g.MultiplayerAdjustment = 1; System.Console.WriteLine(0); break; case 1: g = new PointGenerator(PointGenerator.PointOnSide(side, 20), 3 + LinearDifficulty(10, 12)); System.Console.WriteLine(1); break; case 2: g = new SideGenerator(side, 1); g.GroupSize = 20; g.MultiplayerAdjustment = 1; System.Console.WriteLine(2); break; default: throw new InvalidOperationException(); } //Choose the type of enemy. int enemyType = random.Next(3); switch (enemyType) { case 0: g.EnemyType = EnemyType.Regular; break; case 1: g.EnemyType = EnemyType.Spiral; break; case 2: g.EnemyType = EnemyType.Wave; break; default: throw new InvalidOperationException(); } g.EnemyHealth = 1 + LinearDifficulty(5, 0); g.EnemySize = 20; g.EnemySizeVariance = LinearDifficulty(5, 10); g.Frequency = model.Music.ClicksPerBeat; if (playerSpecifc) { g.PlayerSpecific = true; } wave.Add(g); } waves.Enqueue(wave); }
private void circleToolStripMenuItem_Click(object sender, EventArgs e) { var ph = new CircleGenerator(); dataModel.AddItem(ph); }