public void UpdateStatus() { if (CurrentHitPoints > MaxHitPoints) { CurrentHitPoints = MaxHitPoints; } if (CurrentHitPoints < 0) { CurrentHitPoints = 0; } if (CurrentShieldPoints > MaxShieldPoints) { CurrentShieldPoints = MaxShieldPoints; } if (CurrentShieldPoints < 0) { CurrentShieldPoints = 0; } if (this is Player player) { player.SendCommand(AttributeHitpointUpdateCommand.write(CurrentHitPoints, MaxHitPoints, CurrentNanoHull, MaxNanoHull)); player.SendCommand(AttributeShieldUpdateCommand.write(player.CurrentShieldPoints, player.MaxShieldPoints)); player.SendCommand(SetSpeedCommand.write(player.Speed, player.Speed)); player.Group?.UpdateTarget(player, new List <command_i3O> { new GroupPlayerInformationsModule(player.CurrentHitPoints, player.MaxHitPoints, player.CurrentShieldPoints, player.MaxShieldPoints, player.CurrentNanoHull, player.MaxNanoHull) }); } else if (this is Pet pet) { var owner = pet.Owner; owner.SendCommand(PetHitpointsUpdateCommand.write(pet.CurrentHitPoints, pet.MaxHitPoints, false)); owner.SendCommand(PetShieldUpdateCommand.write(pet.CurrentShieldPoints, pet.MaxShieldPoints)); } foreach (var otherCharacter in Spacemap?.Characters.Values) { if (otherCharacter is Player otherPlayer && otherPlayer.Selected == this) { if (this is Character character) { otherPlayer.SendCommand(ShipSelectionCommand.write(Id, character.Ship.Id, CurrentShieldPoints, MaxShieldPoints, CurrentHitPoints, MaxHitPoints, CurrentNanoHull, MaxNanoHull, (this is Player && (this as Player).SkillTree.shieldEngineering == 5))); } else if (this is Activatable activatable) { otherPlayer.SendCommand(AssetInfoCommand.write( activatable.Id, activatable.GetAssetType(), activatable is Satellite ? (activatable as Satellite).DesignId : 0, 0, activatable.CurrentHitPoints, activatable.MaxHitPoints, activatable.MaxShieldPoints > 0 ? true : false, activatable.CurrentShieldPoints, activatable.MaxShieldPoints )); } } } }
public void Update() { var boostedAttributes = new List <BoosterUpdateModule>(); if (DamageTypes.Count >= 1) { boostedAttributes.Add(new BoosterUpdateModule(new BoostedAttributeTypeModule(BoostedAttributeTypeModule.DAMAGE), GetPercentage(BoostedAttributeType.DAMAGE), new List <BoosterTypeModule>())); //DamageTypes -> içerik yazıları için (ama küçük bir sorunu var) } if (ShieldTypes.Count >= 1) { boostedAttributes.Add(new BoosterUpdateModule(new BoostedAttributeTypeModule(BoostedAttributeTypeModule.SHIELD), GetPercentage(BoostedAttributeType.SHIELD), new List <BoosterTypeModule>())); //ShieldTypes -> içerik yazıları için (ama küçük bir sorunu var) } if (MaxHpTypes.Count >= 1) { boostedAttributes.Add(new BoosterUpdateModule(new BoostedAttributeTypeModule(BoostedAttributeTypeModule.MAXHP), GetPercentage(BoostedAttributeType.MAXHP), new List <BoosterTypeModule>())); //MaxHpTypes -> içerik yazıları için (ama küçük bir sorunu var) } Player.SendCommand(AttributeBoosterUpdateCommand.write(boostedAttributes)); Player.SendCommand(AttributeHitpointUpdateCommand.write(Player.CurrentHitPoints, Player.MaxHitPoints)); Player.SendCommand(AttributeShieldUpdateCommand.write(Player.CurrentShieldPoints, Player.MaxShieldPoints)); }
public void Update() { var boostedAttributes = new List <BoosterUpdateModule>(); if (Boosters.ContainsKey((short)BoostedAttributeType.DAMAGE) && Boosters[(short)BoostedAttributeType.DAMAGE].Count >= 1) { boostedAttributes.Add(new BoosterUpdateModule(new BoostedAttributeTypeModule(BoostedAttributeTypeModule.DAMAGE), GetPercentage(BoostedAttributeType.DAMAGE), Boosters[(short)BoostedAttributeType.DAMAGE].Select(x => new BoosterTypeModule(x.Type)).ToList())); } if (Boosters.ContainsKey((short)BoostedAttributeType.SHIELD) && Boosters[(short)BoostedAttributeType.SHIELD].Count >= 1) { boostedAttributes.Add(new BoosterUpdateModule(new BoostedAttributeTypeModule(BoostedAttributeTypeModule.SHIELD), GetPercentage(BoostedAttributeType.SHIELD), Boosters[(short)BoostedAttributeType.SHIELD].Select(x => new BoosterTypeModule(x.Type)).ToList())); } if (Boosters.ContainsKey((short)BoostedAttributeType.MAXHP) && Boosters[(short)BoostedAttributeType.MAXHP].Count >= 1) { boostedAttributes.Add(new BoosterUpdateModule(new BoostedAttributeTypeModule(BoostedAttributeTypeModule.MAXHP), GetPercentage(BoostedAttributeType.MAXHP), Boosters[(short)BoostedAttributeType.MAXHP].Select(x => new BoosterTypeModule(x.Type)).ToList())); } if (Boosters.ContainsKey((short)BoostedAttributeType.REPAIR) && Boosters[(short)BoostedAttributeType.REPAIR].Count >= 1) { boostedAttributes.Add(new BoosterUpdateModule(new BoostedAttributeTypeModule(BoostedAttributeTypeModule.REPAIR), GetPercentage(BoostedAttributeType.REPAIR), Boosters[(short)BoostedAttributeType.REPAIR].Select(x => new BoosterTypeModule(x.Type)).ToList())); } if (Boosters.ContainsKey((short)BoostedAttributeType.HONOUR) && Boosters[(short)BoostedAttributeType.HONOUR].Count >= 1) { boostedAttributes.Add(new BoosterUpdateModule(new BoostedAttributeTypeModule(BoostedAttributeTypeModule.HONOUR), GetPercentage(BoostedAttributeType.HONOUR), Boosters[(short)BoostedAttributeType.HONOUR].Select(x => new BoosterTypeModule(x.Type)).ToList())); } if (Boosters.ContainsKey((short)BoostedAttributeType.EP) && Boosters[(short)BoostedAttributeType.EP].Count >= 1) { boostedAttributes.Add(new BoosterUpdateModule(new BoostedAttributeTypeModule(BoostedAttributeTypeModule.EP), GetPercentage(BoostedAttributeType.EP), Boosters[(short)BoostedAttributeType.EP].Select(x => new BoosterTypeModule(x.Type)).ToList())); } Player.SendCommand(AttributeBoosterUpdateCommand.write(boostedAttributes)); Player.SendCommand(AttributeHitpointUpdateCommand.write(Player.CurrentHitPoints, Player.MaxHitPoints, Player.CurrentNanoHull, Player.MaxNanoHull)); Player.SendCommand(AttributeShieldUpdateCommand.write(Player.CurrentShieldPoints, Player.MaxShieldPoints)); //TODO dont need every time Player.SettingsManager.SendMenuBarsCommand(); }