public ControlDisplay(float w,SpaceShip s) : base(0, 0, Root.Instance.UserInterface.Renderer.Size.X, Root.Instance.UserInterface.Renderer.Size.Y, new Layout(2, 4)) { Transparent = true; Layout.Widths[0] = Root.Instance.UserInterface.Renderer.Size.X-250; Layout.Widths[1] = 250; Layout.GetCell(0, 0).Span.Y = 4; Layout.Heights[0] = 0.5f; WeaponDisplay = new WeaponDisplay(s.Slots); Add(WeaponDisplay, 1, 0); WeaponManager = new WeaponManager(s); Add(WeaponManager, 1, 1); Comm = new Chat(s.GetPlayer()); Add(Comm, 1, 2); RadarDisplay rd = new RadarDisplay(); Add(rd, 1, 3); //InfoWindow = new GameInfoDisplay(); //InfoWindow.Visible = false; //Add(InfoWindow,0,0); Layout.Update(Size); }
void SpawnShip() { TimeToSpawn = SpawnTime; //playership = new TestShip(); playership = (SpaceShip)Activator.CreateInstance(ShipType); PlayerStart ps = GetSpawnLocation(); if (ps != null) { playership.Position = ps.AbsolutePosition; playership.Orientation = ps.Orientation; } playership.Owner = Player; Root.Instance.Scene.Spawn(playership); Control = new SpaceShipControl(playership, cursor); MainCamera.Target = playership; //FlyByCamera.Attach = playership; // if (ControlMenu != null) //{ //Rule.AnnounceEvent -= ControlMenu.Comm.WriteLine; Rule.AnnounceEvent -= Log.WriteLine; //ControlMenu.Close(); //} //Root.Instance.Gui.windows.Add(ControlMenu = new ControlDisplay(300, playership)); //playership.Computer.TextMonitor = ControlMenu.Comm; //Rule.AnnounceEvent += ControlMenu.Comm.WriteLine; Rule.AnnounceEvent += Log.WriteLine; if (Display != null) { Display.Close(); } if (Root.Instance.Gui != null) { Root.Instance.Gui.windows.Add(Display = new WeaponDisplay(playership.Slots)); if (Bar != null) { Bar.Close(); } Root.Instance.Gui.windows.Add(Bar = new WeaponBar(playership, Display)); if (Radar != null) { Radar.Close(); } Root.Instance.Gui.windows.Add(Radar = new RadarDisplay()); } //ControlMenu.Ship = playership; //ControlMenu.Visible=false; }
public WeaponBar(SpaceShip s, WeaponDisplay d) { ship = s; display = d; icons = new MeshWindow[SpaceShip.WeaponList.Length-1]; for (int i = 0; i < SpaceShip.WeaponList.Length-1; ++i) { icons[i] = new MeshWindow(GetIcon(SpaceShip.WeaponList[i])); if(ship.CurrentWeapon==i) { Style(icons[i], true); currentweapon = i; } else { Style(icons[i], false); } } float pixelsize = 48; Layout = new Layout(1, icons.Length); Size = new Vector2(pixelsize, icons.Length * pixelsize); Position = new Vector2( 8, Root.Instance.UserInterface!=null?(Root.Instance.UserInterface.Renderer.Size.Y / 2 - Size.Y / 2):1000 ); Transparent = true; for(int i=0;i<icons.Length;++i) Add(icons[i],0,i); Layout.Update(Size); UpdateDisplayPosition(); }
public WeaponManager(SpaceShip ship) : base(new Layout(ship.Slots.Length+1,SpaceShip.WeaponList.Length)) { Ship = ship; Transparent = true; WeaponButtons = new Button[ship.Slots.Length, SpaceShip.WeaponList.Length - 1]; //slot numbers for (int j = 0; j < ship.Slots.Length; ++j) { Button b2 = new Button(j.ToString()); Add(b2, j + 1, 0); } //weapon matrix for (int i = 0; i < SpaceShip.WeaponList.Length; ++i) { Type t = SpaceShip.WeaponList[i]; if (t == null) break; //weaponbutton Button b = new Button(t.Name); Add(b, 0, i + 1); for (int j = 0; j < ship.Slots.Length; ++j) { /*string text; if (ship.Slots[j].Weapon != null && ship.Slots[j].Weapon.GetType() == t) text = "X"; else if (ship.CanArmWeapon(SpaceShip.WeaponList[i])) text = "+"; else text = "-";*/ Button b2 = new Button(WeaponButtonClicked,""); b2.UserData = new Point(j, i); Add(b2, j + 1, i + 1); WeaponButtons[j, i] = b2; } } Update(); //Layout.Update //width = 500; Layout.Widths[0] = 4; Size = new Vector2(500,Root.Instance.Gui.DefaultFont.size * Layout.Height); }
public SpaceShipControl(SpaceShip s, Node cursor) : base(s) { Cursor = cursor; }
public FlySmart(SpaceShip owner, Node target, float dist) : base(owner,target.AbsolutePosition) { map = new AStarMap(400, owner); Dist = dist; TargetNode = target; astar = new AStar(); //map.Print(-22,-22,22,22); Point p1 = map.GetCell(target.AbsolutePosition); Point p2 = map.GetCell(owner.AbsolutePosition); p1 = map.GetNearestFreePosition(p1); p2 = map.GetNearestFreePosition(p2); if (p1 == p2) System.Console.WriteLine("start=end!"); AStarMap.AStarNode2D GoalNode = new AStarMap.AStarNode2D(null, null, 0, p1.X, p1.Y, map); AStarMap.AStarNode2D StartNode = new AStarMap.AStarNode2D(null, null, 0, p2.X, p2.Y, map); StartNode.GoalNode = GoalNode; astar.FindPath(StartNode, GoalNode); if (astar.Solution.Count == 0) { System.Console.WriteLine("no solution! from " + p2 + " to " + p1); Done = true; } PrintSolution(astar.Solution); currentnode = 0; }
public SpaceShipBotControl(SpaceShip s) : base(s) { ChangeToDefaultTask(); }
public void ReturnFlag(Flag f, SpaceShip ship) { if (ship != null) { Player p = ship.GetPlayer(); Announce(p.Name + " returned the " + Team.ColorNames[f.Team] + " flag!"); } else { Announce("The " + Team.ColorNames[f.Team] + " flag was returned."); } }
public Retreat(SpaceShip owner, Actor target) : base(owner) { Target = target; }
public Search(SpaceShip owner) : base(owner) { }
public Patrol(SpaceShip owner, Node[] waypoints) : base(owner) { Waypoints = waypoints; }
public Follow(SpaceShip owner, Actor target) : base(owner) { Target = target; }
public FlyTo(SpaceShip owner, Vector3 target) : base(owner) { this.target = target; }
public void CaptureFlag(Flag f, SpaceShip ship) { Player p = ship.GetPlayer(); Announce(p.Name + " captured the " + Team.ColorNames[f.Team] + " flag!"); int cap = ++((CtfTeam)Teams[p.Team]).Captures; if (cap >= CaptureLimit && CaptureLimit > 0) { Announce(Team.ColorNames[p.Team] + " wins the match!"); EndGame(); } }
public Stop(SpaceShip owner) : base(owner) { }
public void DropFlag(Flag f, SpaceShip ship) { Player p = ship.GetPlayer(); Announce(p.Name + " dropped the " + Team.ColorNames[f.Team] + " flag!"); }
public Task(SpaceShip owner) { Owner = owner; }
public void TakeFlag(Flag f, SpaceShip ship) { Player p = ship.GetPlayer(); Announce(p.Name + " has taken the " + Team.ColorNames[f.Team] + " flag!"); }
public Wait(SpaceShip owner) : base(owner) { }
public SpaceShipControlBase(SpaceShip s) : base(s) { Target = s; }
public Attack(SpaceShip owner, Actor target) : base(owner) { Target = target; }