private void OnGangMemberRemoved(Gang gang, Character character) { if (this.TryGetPlayer(character, out Player player)) { player.Gang = null; } }
/// <summary> /// Get gangs by user ID /// </summary> /// <param name="guid">GUID</param> /// <returns>List og gangs belonging to that user</returns> public IEnumerable <Gang> GetGangsByUserGuid(string guid) { using (var connection = new SqlConnection(_connectionString)) { using (var command = new SqlCommand("UserGangs_GetByUserGuid", connection)) { connection.Open(); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@UserGUID", SqlDbType.NVarChar, 100).Value = guid.ToString(); var reader = command.ExecuteReader(); var gangList = new List <Gang>(); while (reader.Read()) { var gang = new Gang(); var value = reader.GetOrdinal("gangId"); gang.GangId = reader.GetString(value); value = reader.GetOrdinal("gangName"); gang.Name = reader.GetString(value); gangList.Add(gang); } return(gangList); } } }
// Creates Gang, [Then Adds current user as GangMember With Leader Role] // TODO: Add current player to gang as leader when gang is created. Maar eerst sessions en inloggen regelen public void CreateGang(Gang gang) { try { using (SqlConnection conn = _dbConnection.GetConnString()) { conn.Open(); using (SqlCommand cmd = new SqlCommand("INSERT INTO [dbo].[Gang] (name, tag, description, money, income, dateFounded) " + "VALUES(@name, @tag, @description, @money, @income, @dateFounded)", conn)) { cmd.Parameters.AddWithValue("@name", gang.Name); cmd.Parameters.AddWithValue("@tag", gang.Tag); cmd.Parameters.AddWithValue("@description", gang.Description); cmd.Parameters.AddWithValue("@money", 10); cmd.Parameters.AddWithValue("@income", 1); cmd.Parameters.AddWithValue("dateFounded", DateTime.Now); cmd.ExecuteNonQuery(); } } } catch (Exception e) { Console.WriteLine(e); throw; } }
protected override void OnUnitVisibilityUpdated(Unit target, Visibility visibility) { switch (visibility) { case Visibility.Visible: { target.BroadcastPacket += OnUnitBroadcastPacket; target.Updated += OnUnitUpdated; Session.SendPacket(target.EnterPacketBuilder); break; } case Visibility.Invisible: { target.BroadcastPacket -= OnUnitBroadcastPacket; target.Updated -= OnUnitUpdated; Session.SendPacket(target.ExitPacketBuilder); break; } } if (Gang.IsMember(target)) { Session.SendPacket(new GangUpdatePacketBuilder(visibility, (Player)target)); } base.OnUnitVisibilityUpdated(target, visibility); }
public ActionResult CreateGang(IFormCollection form) { // AI TaakId List <Gang> allGangs = _gangLogic.GetGangs(); int autoIncrementHighestId = 1; foreach (Gang currentGang in allGangs) { if (currentGang.GangId > autoIncrementHighestId) { autoIncrementHighestId = currentGang.GangId + 1; } } Gang gang = new Gang { Name = form["Name"], Tag = form["Tag"], Description = form["Description"], Players = new List <Player>(), GangId = autoIncrementHighestId }; _gangLogic.CreateGang(gang); return(RedirectToAction("Index")); }
public string GenerateImage(Gang gang) { TacticsImageGenerator generator = new TacticsImageGenerator(300, 300); foreach (var ganger in gang.GetAllCombatants()) { bool succes = generator.AddGangerPosition(ganger.Name, (ganger.Hp / ganger.Template.StartingHp) * 100, ganger.Mindset, ganger is Leader); var mindset = ganger.Mindset; if (!succes) { while (mindset != 0) { mindset -= 1; if (generator.AddGangerPosition(ganger.Name, (ganger.Hp / ganger.Template.StartingHp) * 100, ganger.Mindset, ganger is Leader)) break; } } } Random rand = new Random(); Bitmap image = generator.GenerateTacticsImage(); image.Save(Server.MapPath("~/" + string.Format(tacticImageUrl, gang.Id, string.Empty)), ImageFormat.Png); return string.Format(tacticImageUrl, gang.Id, "?" + rand.Next()); }
public void GangRatingTest() { var gang = new Gang() { Gangers = new[] { new Ganger() { Experience = 50, Cost = 50 }, new Ganger() { Experience = 50, Cost = 50 }, new Ganger() { Experience = 50, Cost = 50 }, new Ganger() { Experience = 50, Cost = 50 } } }; var expected = 400; Assert.AreEqual(expected, gang.GangRating); }
public static void SendPacketToGang(this IZone zone, Gang gang, Packet packet, long exceptMemberEid = 0L) { zone.GetGangMembers(gang).Where(player => player.Eid != exceptMemberEid).ForEach(p => { p.Session.SendPacket(packet); }); }
private void OnGangMemberJoined(Gang gang, Character character) { if (this.TryGetPlayer(character, out Player player)) { player.Gang = gang; } }
public void UpdateGang(Gang gang) { Gang gangToUpdate = GetGangWithId(gang.GangId); gangToUpdate.Name = gang.Name; gangToUpdate.Tag = gang.Tag; gangToUpdate.Description = gang.Description; }
protected override bool IsDetected(Unit target) { if (Gang.IsMember(target)) { return(true); } return(base.IsDetected(target)); }
private void OnGangDisbanded(Gang gang) { foreach (var player in Players) { if (player.Gang == gang) { player.Gang = null; } } }
public Entry(int Id, String Name, String Beschreibung, Klassifikation Klassifikation, int Portion, Schwierigkeit Schwierigkeit, Saison Saison, Gang Gang) { this.Id = Id; this.Name = Name; this.Beschreibung = Beschreibung; this.Klassifikation = Klassifikation; this.Portionen = Portionen; this.Schwierigkeit = Schwierigkeit; this.Saison = Saison; this.Gang = Gang; }
public void GetRandomTerritoryFailureTest() { _mockDiceRoller.Setup(m => m.RollD66()).Returns(70); _mockGangProvider.Setup(m => m.AddGang(It.IsAny <Gang>())) .Returns((Gang g) => g); var gang = new Gang() { Gangers = new Ganger[0] }; Assert.Throws <HivemindException>(() => _gangManager.AddGang(gang)); }
/// <summary> /// Add gang /// </summary> /// <param name="gang">Gang to add</param> /// <returns>Added gang</returns> public Gang AddGang(Gang gang) { var addedGang = _gangProvider.AddGang(gang); foreach (var ganger in addedGang.Gangers) { _gangerProvider.AddGanger(ganger); } InitialGangTerritories(addedGang.GangId); return(addedGang); }
public IActionResult EditGang(int id, IFormCollection form) { Gang gang = new Gang() { Name = form["Name"], Tag = form["Tag"], Description = form["Description"], GangId = id }; _gangLogic.UpdateGang(gang); return(RedirectToAction("Index")); }
public Gang GetGangWithId(int id) { Gang correctGang = null; foreach (Gang currentGang in _gangs) { if (currentGang.GangId == id) { correctGang = currentGang; } } return(correctGang); }
// TODO: Fix dit: zorgt dat het uit gangplayerlijst wordt verwijderd, niet uit lijst players public void RemovePlayerFromGang(int playerId, int gangId) { _players.Remove(_players[playerId]); Gang correctGang = null; foreach (Gang currentGang in _gangs) { if (currentGang.GangId == gangId) { correctGang = currentGang; } } }
public IEnumerable <Player> GetPlayersInGang(int id) { Gang correctGang = null; foreach (Gang currentGang in _gangs) { if (currentGang.GangId == id) { correctGang = currentGang; } } return(correctGang?.Players); }
public static RandomEventResult Generate(Gang gang) { var randomValue = RandomGenerator.GetForRange(0, 4); if (randomValue == 0) { var ev = _randomEvents[RandomGenerator.GetForRange(0, _randomEvents.Count)]; if (ev.CanAffectGang(gang)) { return(new RandomEventResult(ev)); } } return(new RandomEventResult()); }
public void GetRandomTerritoryTest(int roll, TerritoryEnum territoryId) { _mockDiceRoller.Setup(m => m.RollD66()).Returns(roll); _mockGangProvider.Setup(m => m.AddGang(It.IsAny <Gang>())) .Returns((Gang g) => g); var gang = new Gang() { Gangers = new Ganger[0] }; var addedGang = _gangManager.AddGang(gang); _mockTerritoryProvider.Verify(m => m.GetTerritoryById((int)territoryId), Times.AtLeastOnce); }
public Gang CreateGang(long creator, string name) { using (var db = new Database()) { var gang = new Gang() { Members = "", Name = name, Creator = creator, Id = db.Gangs.Count() + 1 }; db.Gangs.Add(gang); db.SaveChanges(); return(gang); } }
public Gang AddGang([FromBody] Gang gang) { // TODO: validate request // TODO: Assign gang to principal var principal = User as ClaimsPrincipal; var userId = principal.Claims.FirstOrDefault(claim => claim.Type == "userId"); if (userId == null) { throw new HivemindException("User does not have a user ID"); } var gangEntity = _gangManager.AddGang(gang); _gangManager.AssociateGangToUser(gang.GangId, userId.Value); return(gangEntity); }
private void Attack(Gang gang, AttackDifficulty difficulty) { var attack = new Attack(); attack.Target = gang; attack.Attacker = null; DateTime d1 = new DateTime(1970, 1, 1).ToUniversalTime(); DateTime d2 = DateTime.UtcNow.AddHours(3 + rand.Next(0, 3)); DateTime d3 = DateTime.UtcNow; TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks); string arrival = ts.TotalMilliseconds.ToString(); ts = new TimeSpan(d3.Ticks - d1.Ticks); string now = ts.TotalMilliseconds.ToString(); attack.ETA.Value = arrival; attack.Indicator = "Zombies"; int random = rand.Next(2, 5); int zombies = random * ((int)difficulty + 1); int exposure = gang.Exposure; for (int i = 0; i < zombies; i++) { int exposureOffset = rand.Next(0, 50); var combatant = CombatantType.Zombie; if (exposure < 55) neutType.Value = CombatantType.Zombie; else if (exposure < 85) neutType.Value = CombatantType.Zombie; else if (exposure < 120) neutType.Value = CombatantType.Zombie; else neutType.Value = CombatantType.Zombie; neutNode.Attributes.Append(neutType); attackNode.AppendChild(neutNode); } gang.LastAttack = now; }
/// <summary> /// Update a gang /// </summary> /// <param name="gang">Gang</param> /// <returns>Updated gang</returns> public Gang UpdateGang(Gang gang) { using (var connection = new SqlConnection(_connectionString)) { using (var command = new SqlCommand("Gangs_UpdateGang", connection)) { connection.Open(); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@GangId", SqlDbType.NVarChar, 100).Value = gang.GangId; command.Parameters.Add("@Name", SqlDbType.NVarChar).Value = gang.Name; command.Parameters.Add("@House", SqlDbType.Int).Value = (int)gang.GangHouse; command.Parameters.Add("@Credits", SqlDbType.Int).Value = gang.Credits; command.ExecuteNonQuery(); return(GetGangById(gang.GangId)); } } }
private void Start() { _animationController = new MemberAnimationController(this); _myGang = transform.parent.GetComponentInChildren <Gang>(); _navigator = GetComponent <NavMeshAgent>(); _memberRb = GetComponent <Rigidbody>(); _memberRenderer = GetComponentInChildren <SkinnedMeshRenderer>(); _navigator.speed = baseSpeed; _memberDelta = Vector2.zero; _downRayLayer = 1 << LayerMask.NameToLayer("Default"); memState = MemberState.onNav; navState = NavigatorState.noPath; queuedAnimations = new Queue <GangAnimData>(); ClosePhysics(); }
public List <Gang> GetGangs() { List <Gang> gangs = new List <Gang>(); try { using (SqlConnection conn = _dbConnection.GetConnString()) { conn.Open(); using (SqlCommand gangCmd = new SqlCommand("SELECT * FROM [dbo].[Gang];", conn)) { using (SqlDataReader gangReader = gangCmd.ExecuteReader()) { while (gangReader.Read()) { Gang gang = new Gang(); gang.GangId = (int)gangReader["GangID"]; gang.Name = (string)gangReader["name"]; gang.Tag = (string)gangReader["tag"]; gang.Description = gangReader["description"]?.ToString(); gang.Money = (decimal)gangReader["money"]; gang.Income = (decimal)gangReader["income"]; gang.DateFounded = (DateTime)gangReader["dateFounded"]; gangs.Add(gang); } } } } } catch (Exception e) { Console.WriteLine(e); throw; } foreach (Gang currentGang in gangs) { currentGang.Players = GetPlayersInGang(currentGang.GangId); } return(gangs); }
public void SpendTest(int startingCredits, int spendingAmount, int finalCredits, bool expectSuccess) { var gangId = "1"; var gang = new Gang() { GangId = gangId, Name = "TestGang", Credits = startingCredits }; _mockGangProvider.Setup(m => m.GetGangById(It.IsAny <string>())) .Returns(gang); _mockGangProvider.Setup(m => m.UpdateGang(It.IsAny <Gang>())) .Returns((Gang g) => g); var wasSuccessful = _gangManager.Spend(gangId, spendingAmount); Assert.AreEqual(expectSuccess, wasSuccessful); Assert.AreEqual(finalCredits, gang.Credits); }
private Gang GetGangFromReader(SqlDataReader reader) { var gang = new Gang(); if (reader.Read()) { var value = reader.GetOrdinal("gangId"); gang.GangId = reader.GetString(value); value = reader.GetOrdinal("gangName"); gang.Name = reader.GetString(value); value = reader.GetOrdinal("house"); gang.GangHouse = (GangHouse)reader.GetInt32(value); value = reader.GetOrdinal("credits"); gang.Credits = reader.GetInt32(value); } return(gang); }
public static Gang CreateGang(ulong leaderId, ulong guildId, string name) { Expression <Func <Gang, bool> > expression = x => x.Name.ToLower() == name.ToLower() && x.GuildId == guildId; if (DEABot.Gangs.Find(expression).Limit(1).Any()) { throw new Exception($"There is already a gang by the name {name}."); } if (name.Length > Config.GANG_NAME_CHAR_LIMIT) { throw new Exception($"The length of a gang name may not be longer than {Config.GANG_NAME_CHAR_LIMIT} characters."); } var createdGang = new Gang() { GuildId = guildId, LeaderId = leaderId, Name = name }; DEABot.Gangs.InsertOne(createdGang); return(createdGang); }
/// <summary> /// Add a gang /// </summary> /// <param name="gang">Gang</param> /// <returns>Added gang</returns> public Gang AddGang(Gang gang) { using (var connection = new SqlConnection(_connectionString)) { using (var command = new SqlCommand("Gangs_AddGang", connection)) { connection.Open(); command.CommandType = CommandType.StoredProcedure; var gangId = command.Parameters.Add("@GangId", SqlDbType.NVarChar, 100); gangId.Direction = ParameterDirection.Output; command.Parameters.Add("@GangName", SqlDbType.NVarChar).Value = gang.Name; command.Parameters.Add("@House", SqlDbType.Int).Value = (int)gang.GangHouse; command.Parameters.Add("@Credits", SqlDbType.Int).Value = (int)gang.Credits; command.ExecuteNonQuery(); gang.GangId = (string)gangId.Value; return(gang); } } }
public void AddGangTest() { _mockDiceRoller.Setup(d => d.RollD66()).Returns(11); var gang = new Gang() { Name = "New Gang", Gangers = new[] { new Ganger() { Name = "Ganger 1" }, new Ganger() { Name = "Ganger 2" }, new Ganger() { Name = "Ganger 3" } } }; _mockGangProvider.Setup(m => m.AddGang(It.IsAny <Gang>())) .Returns((Gang g) => { g.GangId = "AAAA-BBBB-CCCC"; return(g); }); var addedGang = _gangManager.AddGang(gang); _mockGangProvider.Verify(m => m.AddGang(gang), Times.Once); Assert.AreEqual("AAAA-BBBB-CCCC", addedGang.GangId); _mockGangerProvider.Verify(m => m.AddGanger(It.IsAny <Ganger>()), Times.Exactly(3)); _mockTerritoryProvider.Verify(m => m.AddGangTerritory(It.Is <GangTerritory>(gt => gt.GangId == gang.GangId)), Times.Exactly(5)); }
public bool HandleArrivedAttacks(Gang gang) { DateTime d2 = DateTime.UtcNow; TimeSpan ts = new TimeSpan(d2.Ticks - startTime.Ticks); double dateNow = ts.TotalMilliseconds; var toBeDeleted = new List<Attack>(); foreach (Attack attack in gang.IncomingAttacks) { if (System.Convert.ToDouble(attack.ETA) < dateNow) { attackResolver.ResolveAttack(attack); toBeDeleted.Add(attack); NhSession.Save(attack); } } foreach (Attack attack in toBeDeleted) { gang.IncomingAttacks.Remove(attack); NhSession.Save(gang); } return true; }
private string GetStatusImage(Gang gang) { return "Content/LastStandImages/StatusImage" + gang.Status + ".jpg?"; }
private void HandleCasualties(Attack attack, Gang gang) { foreach (Combatant casualty in graveyard) { if (gang.Members.Contains(casualty) && casualty is Gangmember) { Gangmember ganger = (Gangmember) casualty; casualty.Destroyed = true; gang.Members.Remove(ganger); gang.Graveyard.Add(ganger); } else if (casualty == gang.Leader) //ouch! { gang.Leader.Destroyed = true; //remove leader: } } }
private void Attack(Gang gang, AttackDifficulty difficulty, ISession NhSession) { var attack = new Attack(); attack.Name = "Zombie attack"; attack.Target = gang; attack.Attacker = null; DateTime d1 = new DateTime(1970, 1, 1).ToUniversalTime(); DateTime d2 = DateTime.UtcNow.ToUniversalTime().AddHours(3 + rand.Next(0, 3)); DateTime d3 = DateTime.UtcNow.ToUniversalTime(); TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks); var arrival = ts.TotalMilliseconds; ts = new TimeSpan(d3.Ticks - d1.Ticks); var now = ts.TotalMilliseconds; attack.ETA = arrival; attack.Indicator = "Zombies"; int random = rand.Next(2, 5); int zombies = random * ((int)difficulty + 1); int exposure = gang.Exposure; for (int i = 0; i < zombies; i++) { int exposureOffset = rand.Next(0, 50); var combatant = CombatantType.Zombie; if (exposure < 55) combatant = CombatantType.Zombie; else if (exposure < 85) combatant = CombatantType.PlagueZombie; else if (exposure < 120) combatant = CombatantType.BloodZombie; else combatant = CombatantType.ZombieLord; attack.Combatants.Add(combatant); } gang.LastAttack = now; gang.IncomingAttacks.Add(attack); NhSession.Save(gang); NhSession.Save(attack); }
// Range: -1 Access: 0 Flags: ( 0, 4, 255 ) public static int get_domination_time( Gang G = null ) { return Num13.maxInt( 180, ((int)( 900 - Num13.round( G.territory.len / GlobalVars.start_state.num_territories * 100, 1 ) * 12 )) ); }