From: otta8634 Date: Tue, 25 Feb 2025 17:31:23 +0000 (+0800) Subject: Use proper grammar in the guide X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=289461d6d9b1a027e186c8b3c968e8aeb2fce551;p=xonotic%2Fxonotic-data.pk3dir.git Use proper grammar in the guide Ended paragraphs with a period, rather than nothing. --- diff --git a/qcsrc/common/gamemodes/gamemode/assault/assault.qc b/qcsrc/common/gamemodes/gamemode/assault/assault.qc index d5d6545778..493f60c258 100644 --- a/qcsrc/common/gamemodes/gamemode/assault/assault.qc +++ b/qcsrc/common/gamemodes/gamemode/assault/assault.qc @@ -4,12 +4,12 @@ METHOD(Assault, describe, string(Assault this)) { TC(Assault, this); - return sprintf(_("%s is a team-based gamemode involving an attacking and a defending team\n\n" + return sprintf(_("%s is a team-based gamemode involving an attacking and a defending team.\n\n" "The attacking team destroys objects placed on the map, which opens up new doors or pathways to more objects, until a main object (the enemy power core) is reached. " - "The attacking team wins the round if they manage to destroy the power core before time runs out, and then teams switch roles in the next round\n\n" - "The defending team has to defend the objects, winning the round if they successfully prevent the attacking team from destroying the power core\n\n" - "A team will win the match overall once they win at least one round where they attacked and one round where they defended, meaning there can be ties\n\n" - "Objects have waypoints which show their health and position, and they're destroyed by shooting them with any weapon"), + "The attacking team wins the round if they manage to destroy the power core before time runs out, and then teams switch roles in the next round.\n\n" + "The defending team has to defend the objects, winning the round if they successfully prevent the attacking team from destroying the power core.\n\n" + "A team will win the match overall once they win at least one round where they attacked and one round where they defended, meaning there can be ties.\n\n" + "Objects have waypoints which show their health and position, and they're destroyed by shooting them with any weapon."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/clanarena/clanarena.qc b/qcsrc/common/gamemodes/gamemode/clanarena/clanarena.qc index f85384be65..91b3c5f3d9 100644 --- a/qcsrc/common/gamemodes/gamemode/clanarena/clanarena.qc +++ b/qcsrc/common/gamemodes/gamemode/clanarena/clanarena.qc @@ -5,9 +5,9 @@ METHOD(ClanArena, describe, string(ClanArena this)) { TC(ClanArena, this); return sprintf(_("%s is a common round-based gamemode played with teams, where players spawn with all weapons available, have maximum health and armor, but only have one life per round. " - "There are no pickups available on the map in %s, making the gameplay fast-paced and focused on combat\n\n" - "Rounds start with a ten second grace period where weapons cannot be fired, so it's a good opportunity to group up with your team\n\n" - "The match ends once a team reaches a certain number of won rounds, or has a considerable lead over the other team\n\n" + "There are no pickups available on the map in %s, making the gameplay fast-paced and focused on combat.\n\n" + "Rounds start with a ten second grace period where weapons cannot be fired, so it's a good opportunity to group up with your team.\n\n" + "The match ends once a team reaches a certain number of won rounds, or has a considerable lead over the other team.\n\n" "Since players only have one life per round, it's important to group up with fellow teammates and pay attention to any callouts from them. " "Team coordination is key!"), COLORED_NAME(this), COLORED_NAME(this)); diff --git a/qcsrc/common/gamemodes/gamemode/ctf/ctf.qc b/qcsrc/common/gamemodes/gamemode/ctf/ctf.qc index c8f078e21e..8ddc59165d 100644 --- a/qcsrc/common/gamemodes/gamemode/ctf/ctf.qc +++ b/qcsrc/common/gamemodes/gamemode/ctf/ctf.qc @@ -5,14 +5,14 @@ METHOD(CaptureTheFlag, describe, string(CaptureTheFlag this)) { TC(CaptureTheFlag, this); return sprintf(_("%s is a common team-based gamemode where the object is to steal an enemy team's flag and bring it back to your own to capture it. " - "A flag can only be captured if your own flag is also home in its base, so it's important to collect your flag after it's dropped\n\n" - "The game is won once a team reaches a certain number of \"caps\" (captures), or has a considerable lead over the other team\n\n" + "A flag can only be captured if your own flag is also home in its base, so it's important to collect your flag after it's dropped.\n\n" + "The game is won once a team reaches a certain number of \"caps\" (captures), or has a considerable lead over the other team.\n\n" "If a flag is dropped into the void or a death trap it will be immediately returned to its base, or otherwise it will sit idle for a while before automatically returning itself. " - "If all flags are held by an enemy, after some time period a \"stalemate\" will initiate and all flag carriers (\"fc\"s) will be exposed on the radar and with waypoints\n\n" - "Some %s maps have more than two bases on it, but generally this is a 2-team gamemode\n\n" + "If all flags are held by an enemy, after some time period a \"stalemate\" will initiate and all flag carriers (\"fc\"s) will be exposed on the radar and with waypoints.\n\n" + "Some %s maps have more than two bases on it, but generally this is a 2-team gamemode.\n\n" "This gamemode rewards crafty movement, since the more difficult it is for enemies to attack you, the more likely you are to escape from their base with their flag. " "Importantly, it also rewards base defense since if your enemies can't take your flag, they can never capture. " - "Lastly, good team communication is important, especially to let them know if you see the enemy flag carrier"), + "Lastly, good team communication is important, especially to let them know if you see the enemy flag carrier."), COLORED_NAME(this), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/cts/cts.qc b/qcsrc/common/gamemodes/gamemode/cts/cts.qc index 838f058d12..82b1c1379e 100644 --- a/qcsrc/common/gamemodes/gamemode/cts/cts.qc +++ b/qcsrc/common/gamemodes/gamemode/cts/cts.qc @@ -7,10 +7,10 @@ METHOD(RaceCTS, describe, string(RaceCTS this)) { TC(RaceCTS, this); return sprintf(_("%s is a unique gamemode, focusing on racing against other players on the map, rather than fighting them with weapons. " - "Players run through the map from start to finish as fast as possible and try to beat the times set by others\n\n" - "%s is similar to %s, except you don't run in laps, and instead run from the start line to the finish line, then start over again\n\n" + "Players run through the map from start to finish as fast as possible and try to beat the times set by others.\n\n" + "%s is similar to %s, except you don't run in laps, and instead run from the start line to the finish line, then start over again.\n\n" "Although this gamemode is quite different from the rest, it is played quite frequently since it's a great way to master movement skills and there are heaps of community-made maps available. " - "Also, it only requires one player to play"), + "Also, it only requires one player to play."), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_RACE)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/deathmatch/deathmatch.qc b/qcsrc/common/gamemodes/gamemode/deathmatch/deathmatch.qc index a79bb0a1ef..c71fe825ef 100644 --- a/qcsrc/common/gamemodes/gamemode/deathmatch/deathmatch.qc +++ b/qcsrc/common/gamemodes/gamemode/deathmatch/deathmatch.qc @@ -8,9 +8,9 @@ METHOD(Deathmatch, describe, string(Deathmatch this)) { TC(Deathmatch, this); return sprintf(_("%s is a simple free-for-all fight to the death, where everyone plays against everyone else, and the winner is the one with the most points. " - "When fragged, you respawn with only the starter weapons, so any you collected up will have to be re-picked up\n\n" - "Scoring is quite simple, fragging an opponent adds one to your score, and fragging yourself subtracts one\n\n" - "Maps often have powerups and items like %s and %s, which are usually highly contested since sometimes they have the power to make or break a game, so making good use of them is important"), + "When fragged, you respawn with only the starter weapons, so any you collected up will have to be re-picked up.\n\n" + "Scoring is quite simple, fragging an opponent adds one to your score, and fragging yourself subtracts one.\n\n" + "Maps often have powerups and items like %s and %s, which are usually highly contested since sometimes they have the power to make or break a game, so making good use of them is important."), COLORED_NAME(this), COLORED_NAME(ITEM_HealthMega), COLORED_NAME(ITEM_ArmorMega)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/domination/domination.qc b/qcsrc/common/gamemodes/gamemode/domination/domination.qc index ef21634e28..01d1f258b9 100644 --- a/qcsrc/common/gamemodes/gamemode/domination/domination.qc +++ b/qcsrc/common/gamemodes/gamemode/domination/domination.qc @@ -4,11 +4,11 @@ METHOD(Domination, describe, string(Domination this)) { TC(Domination, this); - return sprintf(_("%s is a gamemode where teams compete to dominate the map by capturing and keeping control points\n\n" + return sprintf(_("%s is a gamemode where teams compete to dominate the map by capturing and keeping control points.\n\n" "Control points are displayed on the radar to make finding them easy, and they are captured by simply walking through them. " "However, an enemy can just as easily steal a control point owned by your team by doing the same. " - "Control points start neutral (owned by no teams)\n\n" - "Scoring is a combination of frags and score automatically generated by any control points held by your team, every few seconds"), + "Control points start neutral (owned by no teams).\n\n" + "Scoring is a combination of frags and score automatically generated by any control points held by your team, every few seconds."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/duel/duel.qc b/qcsrc/common/gamemodes/gamemode/duel/duel.qc index 349d6eda7b..fc59bf18be 100644 --- a/qcsrc/common/gamemodes/gamemode/duel/duel.qc +++ b/qcsrc/common/gamemodes/gamemode/duel/duel.qc @@ -8,11 +8,11 @@ METHOD(Duel, describe, string(Duel this)) { TC(Duel, this); - return sprintf(_("%s is a 1-vs-1 arena battle to decide the winner, essentially a 2-player version of %s, making it one of the most competitive gamemodes\n\n" + return sprintf(_("%s is a 1-vs-1 arena battle to decide the winner, essentially a 2-player version of %s, making it one of the most competitive gamemodes.\n\n" "Since players on their own, important items like the %s and %s are heavily contested, " "and are often \"timed\" by observing the in-game timer when it is picked up to determine when it'll next spawn. " - "The player with the best item control is often the winner\n\n" - "Once you kill your opponent, they will spawn with few weapons and limited health, so it is a good opportunity to search the map for them to pick up an easy frag and continue your streak"), + "The player with the best item control is often the winner.\n\n" + "Once you kill your opponent, they will spawn with few weapons and limited health, so it is a good opportunity to search the map for them to pick up an easy frag and continue your streak."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_DEATHMATCH), COLORED_NAME(ITEM_HealthMega), COLORED_NAME(ITEM_ArmorMega)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/freezetag/freezetag.qc b/qcsrc/common/gamemodes/gamemode/freezetag/freezetag.qc index 9b54d65695..6c550aa9ca 100644 --- a/qcsrc/common/gamemodes/gamemode/freezetag/freezetag.qc +++ b/qcsrc/common/gamemodes/gamemode/freezetag/freezetag.qc @@ -5,12 +5,12 @@ METHOD(FreezeTag, describe, string(FreezeTag this)) { TC(FreezeTag, this); return sprintf(_("%s is a round-based teamplay gamemode where killed players are frozen and need to be unfrozen to re-enter the round. " - "The round ends when all players from all opposing teams are frozen, scoring the remaining team a point\n\n" + "The round ends when all players from all opposing teams are frozen, scoring the remaining team a point.\n\n" "Frozen players slowly unfreeze over time, but they unfreeze much faster when \"revived\" by a teammate standing in close proximity. " - "Additionally, damaging frozen players on the other team helps unfreeze them, so it is best to try to avoid doing that\n\n" - "Like in many other round-based gamemodes, rounds start with a ten second grace period where weapons cannot be fired, meaning it's a good opportunity to grab as many pickups as you can\n\n" + "Additionally, damaging frozen players on the other team helps unfreeze them, so it is best to try to avoid doing that.\n\n" + "Like in many other round-based gamemodes, rounds start with a ten second grace period where weapons cannot be fired, meaning it's a good opportunity to grab as many pickups as you can.\n\n" "Sneakily reviving a teammate will bring them back into the match to help outnumber your opponents, but it should be done with caution since often enemies pay close attention to frozen players to make sure they aren't being revived. " - "For this reason it's important to have good team communication especially while frozen, so you can let your teammates know where the enemies are"), + "For this reason it's important to have good team communication especially while frozen, so you can let your teammates know where the enemies are."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/invasion/invasion.qc b/qcsrc/common/gamemodes/gamemode/invasion/invasion.qc index c000db4ae2..05378e27b8 100644 --- a/qcsrc/common/gamemodes/gamemode/invasion/invasion.qc +++ b/qcsrc/common/gamemodes/gamemode/invasion/invasion.qc @@ -6,8 +6,8 @@ METHOD(Invasion, describe, string(Invasion this)) TC(Invasion, this); return sprintf(_("%s is a unique gamemode played in rounds where a herd of monsters spawn all around the map and players must try to kill as many as possible. " "Since players can't damage each other, they instead fight to steal monster frags from each other. " - "The player who frags the most monsters overall wins the match\n\n" - "A round ends when either all monsters are fragged, or after a time limit"), + "The player who frags the most monsters overall wins the match.\n\n" + "A round ends when either all monsters are fragged, or after a time limit."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/keepaway/keepaway.qc b/qcsrc/common/gamemodes/gamemode/keepaway/keepaway.qc index ea7143c1c0..8cb7bf7198 100644 --- a/qcsrc/common/gamemodes/gamemode/keepaway/keepaway.qc +++ b/qcsrc/common/gamemodes/gamemode/keepaway/keepaway.qc @@ -6,13 +6,13 @@ METHOD(Keepaway, describe, string(Keepaway this)) { TC(Keepaway, this); - return sprintf(_("%s is a free-for-all match where a ball spawns randomly on the map and the goal is to hold the ball for as long as possible\n\n" + return sprintf(_("%s is a free-for-all match where a ball spawns randomly on the map and the goal is to hold the ball for as long as possible.\n\n" "Your score increases when you frag someone while you're holding a ball and when you frag the ball carrier. " - "The first player to reach the score limit will win the match\n\n" + "The first player to reach the score limit will win the match.\n\n" "When the ball carrier is fragged, the ball will drop to the ground and anyone is able to pick it up. " "If nobody picks it up after some time it will get bored and teleport itself elsewhere. " "Like the flag in %s, the ball in %s can also be thrown, but it's not a great idea since you have no teammates!\n\n" - "%s rewards good fragging but also good movement, since the better you can evade attacks, the longer you can keep the ball"), + "%s rewards good fragging but also good movement, since the better you can evade attacks, the longer you can keep the ball."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_CTF), COLORED_NAME(this), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/keyhunt/keyhunt.qc b/qcsrc/common/gamemodes/gamemode/keyhunt/keyhunt.qc index 4cb1870844..1cf73750b7 100644 --- a/qcsrc/common/gamemodes/gamemode/keyhunt/keyhunt.qc +++ b/qcsrc/common/gamemodes/gamemode/keyhunt/keyhunt.qc @@ -7,10 +7,10 @@ METHOD(KeyHunt, describe, string(KeyHunt this)) { TC(KeyHunt, this); return sprintf(_("%s is a round-based gamemode played with a few teams, where each team starts with 1 key and all keys must be collected to win the round. " - "The team member who is given the key at the start of the round is randomly selected after a ten second period, and the location of all keys will be visible in the radar after a few seconds\n\n" + "The team member who is given the key at the start of the round is randomly selected after a ten second period, and the location of all keys will be visible in the radar after a few seconds.\n\n" "Scoring in %s is quite complicated, involving a mix of gathering all keys, points for collecting a key, killing an enemy key carrier, and killing other enemies. " - "If a key is destroyed by being dropped into the void or a death trap, points are allocated accordingly\n\n" - "Like in %s the key can be dropped, so you can pass it to your teammates if you're running low on health"), + "If a key is destroyed by being dropped into the void or a death trap, points are allocated accordingly.\n\n" + "Like in %s the key can be dropped, so you can pass it to your teammates if you're running low on health."), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_CTF)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/lms/lms.qc b/qcsrc/common/gamemodes/gamemode/lms/lms.qc index b1c00e1728..d4f419301d 100644 --- a/qcsrc/common/gamemodes/gamemode/lms/lms.qc +++ b/qcsrc/common/gamemodes/gamemode/lms/lms.qc @@ -8,8 +8,8 @@ METHOD(LastManStanding, describe, string(LastManStanding this)) TC(LastManStanding, this); return sprintf(_("%s is a free-for-all gamemode where all players start with a certain number of lives, and are eliminated from the match once they lose all lives. " "Players spawn in with all available weapons, maximum health, maximum armor, and health and armor do not regenerate, similar to gamemodes like %s. " - "Similarly, item pickups don't spawn on the map\n\n" - "Hiding is sometimes a viable strategy since if you can't be found you can't lose lives, but often you become a vulnerable target once discovered"), + "Similarly, item pickups don't spawn on the map.\n\n" + "Hiding is sometimes a viable strategy since if you can't be found you can't lose lives, but often you become a vulnerable target once discovered."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_CA)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/mayhem/mayhem.qc b/qcsrc/common/gamemodes/gamemode/mayhem/mayhem.qc index 0dc1acf9d3..a667b8fe50 100644 --- a/qcsrc/common/gamemodes/gamemode/mayhem/mayhem.qc +++ b/qcsrc/common/gamemodes/gamemode/mayhem/mayhem.qc @@ -7,12 +7,12 @@ METHOD(mayhem, describe, string(mayhem this)) { TC(mayhem, this); return sprintf(_("%s is a fast-paced free-for-all deathmatch where players spawn in with all available weapons and maximum health and armor. " - "There are no pickups enabled on maps, but buffs are still available\n\n" + "There are no pickups enabled on maps, but buffs are still available.\n\n" "It shines in its unique handling of scoring, accouting for both frags but also damage dealt. " "This means that if you almost frag a player you will still be rewarded with points, but dealing the final blow is always better if possible. " - "Points are deducted when you walk into hazards, but not when you do movement tricks like blaster jumping since self damage is disabled\n\n" - "Since damage is always rewarded in %s, the more you shoot the better, turning this gamemode into chaotic fun at times\n\n" - "This gamemode is often seen as a more newbie-friendly version of %s"), + "Points are deducted when you walk into hazards, but not when you do movement tricks like blaster jumping since self damage is disabled.\n\n" + "Since damage is always rewarded in %s, the more you shoot the better, turning this gamemode into chaotic fun at times.\n\n" + "This gamemode is often seen as a more newbie-friendly version of %s."), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_DEATHMATCH)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc index 2ea7269c59..b47ebf9712 100644 --- a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc +++ b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc @@ -6,8 +6,8 @@ METHOD(NexBall, describe, string(NexBall this)) { TC(NexBall, this); - return sprintf(_("%s is a fun ball sport game where 2 teams compete to score the most goals\n\n" - "%s is usually played as either soccer where players walk into the ball to kick it around, or basketball where players have a %s so can pass the ball and intercept passes\n\n" + return sprintf(_("%s is a fun ball sport game where 2 teams compete to score the most goals.\n\n" + "%s is usually played as either soccer where players walk into the ball to kick it around, or basketball where players have a %s so can pass the ball and intercept passes.\n\n" "Keep in mind players can score own goals, so don't embarrass yourself in front of your team!"), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(WEP_NEXBALL)); } diff --git a/qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc b/qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc index 6d2e472dac..de2402b0ef 100644 --- a/qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc +++ b/qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc @@ -73,11 +73,11 @@ METHOD(Onslaught, describe, string(Onslaught this)) { TC(Onslaught, this); return sprintf(_("%s is a team-based gamemode similar to %s where the final goal is to destroy the enemy team core generator. " - "In order to destroy the generator, control points on the map (similar to those in %s) must first be captured\n\n" - "Since your team can only capture a control point if it is connected to another control point currently owned by your team, you have to systematically work through the map to reach the enemy generator\n\n" + "In order to destroy the generator, control points on the map (similar to those in %s) must first be captured.\n\n" + "Since your team can only capture a control point if it is connected to another control point currently owned by your team, you have to systematically work through the map to reach the enemy generator.\n\n" "A control point is captured by walking into it then waiting for it to finish constructing. " - "Control points of the opposing team are destroyed by attacking the \"info bot\" that hovers above them, converting the control point to neutral once it is destroyed\n\n" - "When in overtime, the enemy's generator will start to decay, at a faster rate the more control points your team has"), + "Control points of the opposing team are destroyed by attacking the \"info bot\" that hovers above them, converting the control point to neutral once it is destroyed.\n\n" + "When in overtime, the enemy's generator will start to decay, at a faster rate the more control points your team has."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_ASSAULT)); } diff --git a/qcsrc/common/gamemodes/gamemode/race/race.qc b/qcsrc/common/gamemodes/gamemode/race/race.qc index 99c1ab88fb..59cfaf63e6 100644 --- a/qcsrc/common/gamemodes/gamemode/race/race.qc +++ b/qcsrc/common/gamemodes/gamemode/race/race.qc @@ -6,9 +6,9 @@ METHOD(Race, describe, string(Race this)) { TC(Race, this); - return sprintf(_("%s is a gamemode similar to %s except the start and finish line of the track are identical, so you run laps repeatedly through the track\n\n" + return sprintf(_("%s is a gamemode similar to %s except the start and finish line of the track are identical, so you run laps repeatedly through the track.\n\n" "Consequently the aim is to keep running constantly to complete as many laps as possible for the shot at the fastest time, rather than resetting runs like in %s to set the individual best time. " - "Since you continue straight onto the next lap, having a speedy finish to a lap means that your next lap will start off with high speed, giving you a good shot at beating your personal best"), + "Since you continue straight onto the next lap, having a speedy finish to a lap means that your next lap will start off with high speed, giving you a good shot at beating your personal best."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_CTS), COLORED_NAME(MAPINFO_TYPE_CTS)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/survival/survival.qc b/qcsrc/common/gamemodes/gamemode/survival/survival.qc index 41eac7b888..e086109b07 100644 --- a/qcsrc/common/gamemodes/gamemode/survival/survival.qc +++ b/qcsrc/common/gamemodes/gamemode/survival/survival.qc @@ -8,12 +8,12 @@ METHOD(Survival, describe, string(Survival this)) { TC(Survival, this); return sprintf(_("%s is a hunter-survivor gamemode involving two teams where the goal of the hunters is to frag all survivors, and the goal of the survivors is to frag all hunters or survive until time runs out. " - "The trick lies in the fact that players only know which team they belong to, and not the team membership of any other players\n\n" - "Since the goal of both teams is essentially to eliminate all members of the opposite team, it can be tricky for survivors to figure out their fellow teammates\n\n" + "The trick lies in the fact that players only know which team they belong to, and not the team membership of any other players.\n\n" + "Since the goal of both teams is essentially to eliminate all members of the opposite team, it can be tricky for survivors to figure out their fellow teammates.\n\n" "Teams are randomly selected as the round begins, with the hunter team being a bit smaller, " - "and then the round starts with a brief warmup grace period in which items can be collected but weapons can't be fired\n\n" + "and then the round starts with a brief warmup grace period in which items can be collected but weapons can't be fired.\n\n" "Players are rewarded a point for each member of the opposing team they frag, only if they survive the round, and points are deducted for each teammate fragged. " - "Extra points are also to survivors who survive until the round timer expires"), + "Extra points are also to survivors who survive until the round timer expires."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/tdm/tdm.qc b/qcsrc/common/gamemodes/gamemode/tdm/tdm.qc index aeceb2b6d0..0a9c8a810d 100644 --- a/qcsrc/common/gamemodes/gamemode/tdm/tdm.qc +++ b/qcsrc/common/gamemodes/gamemode/tdm/tdm.qc @@ -6,9 +6,9 @@ METHOD(TeamDeathmatch, describe, string(TeamDeathmatch this)) { TC(TeamDeathmatch, this); - return sprintf(_("%s is the team version of %s, played with 2 teams\n\n" - "Scoring is quite simple, adding a point for every frag, and subtracting a point for fragging yourself or a teammate\n\n" - "Careful team coordination and map control is often a key to winning a match, and sometimes players will share weapons with their teammates"), + return sprintf(_("%s is the team version of %s, played with 2 teams.\n\n" + "Scoring is quite simple, adding a point for every frag, and subtracting a point for fragging yourself or a teammate.\n\n" + "Careful team coordination and map control is often a key to winning a match, and sometimes players will share weapons with their teammates."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_DEATHMATCH)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/tka/tka.qc b/qcsrc/common/gamemodes/gamemode/tka/tka.qc index 3b2d7b60b0..8265b2d1af 100644 --- a/qcsrc/common/gamemodes/gamemode/tka/tka.qc +++ b/qcsrc/common/gamemodes/gamemode/tka/tka.qc @@ -6,8 +6,8 @@ METHOD(TeamKeepaway, describe, string(TeamKeepaway this)) { TC(TeamKeepaway, this); - return sprintf(_("%s is the team version of %s, where teams compete to maintain superior control over the ball\n\n" - "Scoring is similar to in %s, except that points are awarded for frags for all members of the team of the player holding the ball"), + return sprintf(_("%s is the team version of %s, where teams compete to maintain superior control over the ball.\n\n" + "Scoring is similar to in %s, except that points are awarded for frags for all members of the team of the player holding the ball."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_KEEPAWAY), COLORED_NAME(MAPINFO_TYPE_KEEPAWAY)); } #endif diff --git a/qcsrc/common/gamemodes/gamemode/tmayhem/tmayhem.qc b/qcsrc/common/gamemodes/gamemode/tmayhem/tmayhem.qc index bedc8cf24a..ea8e8abb7c 100644 --- a/qcsrc/common/gamemodes/gamemode/tmayhem/tmayhem.qc +++ b/qcsrc/common/gamemodes/gamemode/tmayhem/tmayhem.qc @@ -8,9 +8,9 @@ METHOD(tmayhem, describe, string(tmayhem this)) { TC(tmayhem, this); return sprintf(_("%s is a constant action team-based gamemode based on %s, using the same scoring system. " - "It has a lot of similarities to %s, with one of the main differences being that %s is a round-based gamemode, and of course the scoring system differences\n\n" + "It has a lot of similarities to %s, with one of the main differences being that %s is a round-based gamemode, and of course the scoring system differences.\n\n" "Since it doesn't have rounds, the chaos is nonstop. " - "As a consequence of the chaotic nature, team communication is less important in this gamemode than other team-based gamemodes\n\n"), + "As a consequence of the chaotic nature, team communication is less important in this gamemode than other team-based gamemodes."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_MAYHEM), COLORED_NAME(MAPINFO_TYPE_CA), COLORED_NAME(MAPINFO_TYPE_CA)); } #endif diff --git a/qcsrc/common/items/item/armor.qc b/qcsrc/common/items/item/armor.qc index 4695bda9e5..737939ee12 100644 --- a/qcsrc/common/items/item/armor.qc +++ b/qcsrc/common/items/item/armor.qc @@ -7,7 +7,7 @@ METHOD(ArmorSmall, describe, string(ArmorSmall this)) { TC(ArmorSmall, this); return sprintf(_("The %s provides you a small amount of armor when picked up, " - "protecting you from damage by absorbing incoming hits until it is depleted"), + "protecting you from damage by absorbing incoming hits until it is depleted."), COLORED_NAME(this)); } @@ -15,7 +15,7 @@ METHOD(ArmorMedium, describe, string(ArmorMedium this)) { TC(ArmorMedium, this); return sprintf(_("The %s provides you a medium amount of armor when picked up, " - "protecting you from damage by absorbing incoming hits until it is depleted"), + "protecting you from damage by absorbing incoming hits until it is depleted."), COLORED_NAME(this)); } @@ -23,7 +23,7 @@ METHOD(ArmorBig, describe, string(ArmorBig this)) { TC(ArmorBig, this); return sprintf(_("The %s provides you a large amount of armor when picked up, " - "protecting you from damage by absorbing incoming hits until it is depleted"), + "protecting you from damage by absorbing incoming hits until it is depleted."), COLORED_NAME(this)); } @@ -31,8 +31,8 @@ METHOD(ArmorMega, describe, string(ArmorMega this)) { TC(ArmorMega, this); return sprintf(_("The %s provides you a huge amount of armor when picked up, " - "protecting you from damage by absorbing incoming hits until it is depleted\n\n" - "It tends to be one of the most highly contested items on a map, particularly in game modes like %s"), + "protecting you from damage by absorbing incoming hits until it is depleted.\n\n" + "It tends to be one of the most highly contested items on a map, particularly in game modes like %s."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_DUEL)); } #endif diff --git a/qcsrc/common/items/item/health.qc b/qcsrc/common/items/item/health.qc index 1b0ab6aef7..8f48e81ef3 100644 --- a/qcsrc/common/items/item/health.qc +++ b/qcsrc/common/items/item/health.qc @@ -7,7 +7,7 @@ METHOD(HealthSmall, describe, string(HealthSmall this)) { TC(HealthSmall, this); return sprintf(_("The %s restores a small amount of health when picked up, " - "helping you recover from damage taken during combat"), + "helping you recover from damage taken during combat."), COLORED_NAME(this)); } @@ -15,7 +15,7 @@ METHOD(HealthMedium, describe, string(HealthMedium this)) { TC(HealthMedium, this); return sprintf(_("The %s restores a medium amount of health when picked up, " - "helping you recover from damage taken during combat"), + "helping you recover from damage taken during combat."), COLORED_NAME(this)); } @@ -23,7 +23,7 @@ METHOD(HealthBig, describe, string(HealthBig this)) { TC(HealthBig, this); return sprintf(_("The %s restores a large amount of health when picked up, " - "helping you recover from damage taken during combat"), + "helping you recover from damage taken during combat."), COLORED_NAME(this)); } @@ -31,8 +31,8 @@ METHOD(HealthMega, describe, string(HealthMega this)) { TC(HealthMega, this); return sprintf(_("The %s restores a huge amount of health when picked up, " - "helping you recover from damage taken during combat\n\n" - "It tends to be one of the most highly contested items on a map, particularly in game modes like %s"), + "helping you recover from damage taken during combat.\n\n" + "It tends to be one of the most highly contested items on a map, particularly in game modes like %s."), COLORED_NAME(this), COLORED_NAME(MAPINFO_TYPE_DUEL)); } #endif diff --git a/qcsrc/common/items/item/jetpack.qc b/qcsrc/common/items/item/jetpack.qc index 75f9f1559d..ffdcc16b7f 100644 --- a/qcsrc/common/items/item/jetpack.qc +++ b/qcsrc/common/items/item/jetpack.qc @@ -21,7 +21,7 @@ METHOD(Jetpack, describe, string(Jetpack this)) { TC(Jetpack, this); return sprintf(_("The %s powerup allows you to fly around the map for a short period, " - "providing increased mobility, maneuverability, and the ability to reach higher ground\n\n" + "providing increased mobility, maneuverability, and the ability to reach higher ground.\n\n" "It consumes Fuel ammo while operating, so make sure you don't run out when you're high up!"), COLORED_NAME(this)); } @@ -37,8 +37,8 @@ METHOD(JetpackRegen, describe, string(JetpackRegen this)) { TC(JetpackRegen, this); return sprintf(_("The %s powerup regenerates %s needed for the %s until the powerup expires, " - "so you can continue flying around for longer\n\n" - "Since it is a powerup, it will drop if you die while holding it"), + "so you can continue flying around for longer.\n\n" + "Since it is a powerup, it will drop if you die while holding it."), COLORED_NAME(this), COLORED_NAME(ITEM_JetpackFuel), COLORED_NAME(ITEM_Jetpack)); } #endif diff --git a/qcsrc/common/monsters/monster/golem.qc b/qcsrc/common/monsters/monster/golem.qc index d6b8e43808..2a35e9c6c7 100644 --- a/qcsrc/common/monsters/monster/golem.qc +++ b/qcsrc/common/monsters/monster/golem.qc @@ -284,9 +284,9 @@ METHOD(Golem, mr_setup, bool(Golem this, entity actor)) METHOD(Golem, describe, string(Golem this)) { TC(Golem, this); - return _("Golems are large powerful brutes capable of taking and dealing a beating. Keeping your distance is advised\n\n" - "The Golem's primary melee attack is a series of punches\n" - "On occasion the Golem may jump into the air, dealing massive damage in an area as it slams the ground\n\n" - "To deal with distant foes, the Golem may throw a chunk of its electrified rocky exterior, zapping nearby targets on impact"); + return _("Golems are large powerful brutes capable of taking and dealing a beating. Keeping your distance is advised.\n\n" + "The Golem's primary melee attack is a series of punches. " + "On occasion the Golem may jump into the air, dealing massive damage in an area as it slams the ground.\n\n" + "To deal with distant foes, the Golem may throw a chunk of its electrified rocky exterior, zapping nearby targets on impact."); } #endif diff --git a/qcsrc/common/monsters/monster/mage.qc b/qcsrc/common/monsters/monster/mage.qc index 44d37bfd2e..c5ee93e5e3 100644 --- a/qcsrc/common/monsters/monster/mage.qc +++ b/qcsrc/common/monsters/monster/mage.qc @@ -493,12 +493,12 @@ METHOD(Mage, mr_setup, bool(Mage this, entity actor)) METHOD(Mage, describe, string(Mage this)) { TC(Mage, this); - return _("Wielding nanotechnology as if it were sorcery, the Mage employs a range of unique abilities of its own creation in combat\n\n" - "As a primary attack, the Mage throws a homing electric sphere towards the player\n" - "This sphere will track its target at high speed, exploding on impact or if it does not reach its target in time\n\n" - "When threatened, the Mage may deploy an energy shield to protect itself from damage briefly\n" + return _("Wielding nanotechnology as if it were sorcery, the Mage employs a range of unique abilities of its own creation in combat.\n\n" + "As a primary attack, the Mage throws a homing electric sphere towards the player. " + "This sphere will track its target at high speed, exploding on impact or if it does not reach its target in time.\n\n" + "When threatened, the Mage may deploy an energy shield to protect itself from damage briefly. " "Enemies approaching too closely during this time may be pushed away with explosive force!\n\n" - "Defensively the Mage is capable of healing itself and nearby allies, with some variants also providing armor and ammunition\n\n" - "The Mage may sometimes appear to blink out of existence as it teleports behind its target for a sneak attack"); + "Defensively the Mage is capable of healing itself and nearby allies, with some variants also providing armor and ammunition.\n\n" + "The Mage may sometimes appear to blink out of existence as it teleports behind its target for a sneak attack."); } #endif diff --git a/qcsrc/common/monsters/monster/spider.qc b/qcsrc/common/monsters/monster/spider.qc index ed60dcc255..a87777c330 100644 --- a/qcsrc/common/monsters/monster/spider.qc +++ b/qcsrc/common/monsters/monster/spider.qc @@ -240,8 +240,8 @@ METHOD(Spider, mr_setup, bool(Spider this, entity actor)) METHOD(Spider, describe, string(Spider this)) { TC(Spider, this); - return _("The Spider is a large mechanically enhanced arachnoid adept at hunting speedy enemies\n\n" - "To slow down its target, the Spider launches a synthetic web-like substance from its cannons\n" - "Approaching its enwebbed prey, the Spider will inflict a series of high damage bites"); + return _("The Spider is a large mechanically enhanced arachnoid adept at hunting speedy enemies.\n\n" + "To slow down its target, the Spider launches a synthetic web-like substance from its cannons. " + "Approaching its enwebbed prey, the Spider will inflict a series of high damage bites."); } #endif diff --git a/qcsrc/common/monsters/monster/wyvern.qc b/qcsrc/common/monsters/monster/wyvern.qc index 40fb746d51..e2b0c4bca3 100644 --- a/qcsrc/common/monsters/monster/wyvern.qc +++ b/qcsrc/common/monsters/monster/wyvern.qc @@ -184,7 +184,7 @@ METHOD(Wyvern, mr_setup, bool(Wyvern this, entity actor)) METHOD(Wyvern, describe, string(Wyvern this)) { TC(Wyvern, this); - return _("The Wyvern is a flying reptilian monster that glides around hunting for fresh prey\n\n" - "While fragile, the Wyvern is capable of launching deadly fireballs at the player from a distance, inflicting high damage and causing burning"); + return _("The Wyvern is a flying reptilian monster that glides around hunting for fresh prey.\n\n" + "While fragile, the Wyvern is capable of launching deadly fireballs at the player from a distance, inflicting high damage and causing burning."); } #endif diff --git a/qcsrc/common/monsters/monster/zombie.qc b/qcsrc/common/monsters/monster/zombie.qc index 9a0245f3dc..1a3af8f1ec 100644 --- a/qcsrc/common/monsters/monster/zombie.qc +++ b/qcsrc/common/monsters/monster/zombie.qc @@ -176,11 +176,11 @@ METHOD(Zombie, mr_setup, bool(Zombie this, entity actor)) METHOD(Zombie, describe, string(Zombie this)) { TC(Zombie, this); - return _("Zombies are the undead remains of deceased soldiers, risen with a ravenous hunger and no sense of self-preservation\n\n" - "When a Zombie senses a nearby player it will begin to charge its target at high speeds\n" - "While charging, a Zombie may leap towards the player, dealing massive damage on contact\n" - "If it gets close, the Zombie will punch and bite repeatedly. " - "When threatened the Zombie may hold up its hands to block incoming attacks briefly\n\n" - "It is no small task to kill that which is already dead. Once a Zombie is defeated, destroy its corpse to prevent it from rising again"); + return _("Zombies are the undead remains of deceased soldiers, risen with a ravenous hunger and no sense of self-preservation.\n\n" + "When a Zombie senses a nearby player it will begin to charge its target at high speeds. " + "While charging, a Zombie may leap towards the player, dealing massive damage on contact. " + "If it gets close, the Zombie will punch and bite repeatedly.\n\n" + "When threatened the Zombie may hold up its hands to block incoming attacks briefly.\n\n" + "It is no small task to kill that which is already dead. Once a Zombie is defeated, destroy its corpse to prevent it from rising again!"); } #endif diff --git a/qcsrc/common/mutators/mutator/bloodloss/bloodloss.qc b/qcsrc/common/mutators/mutator/bloodloss/bloodloss.qc index cd68ee1946..0f41cae2ef 100644 --- a/qcsrc/common/mutators/mutator/bloodloss/bloodloss.qc +++ b/qcsrc/common/mutators/mutator/bloodloss/bloodloss.qc @@ -72,8 +72,8 @@ MUTATOR_HOOKFUNCTION(bloodloss, PlayerJump) METHOD(MutatorBloodLoss, describe, string(MutatorBloodLoss this)) { TC(MutatorBloodLoss, this); - return sprintf(_("%s is a mutator in which players below a certain health threshold (for example 25) will suffer blood loss\n\n" - "Blood loss makes players stunned, severely impairs their movement, and rapidly takes away health points until they either die or gain enough health to go above the health threshold"), + return sprintf(_("%s is a mutator in which players below a certain health threshold (for example 25) will suffer blood loss.\n\n" + "Blood loss makes players stunned, severely impairs their movement, and rapidly takes away health points until they either die or gain enough health to go above the health threshold."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/mutators/mutator/buffs/buff/ammo.qc b/qcsrc/common/mutators/mutator/buffs/buff/ammo.qc index a41ecd1fcf..82db616795 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/ammo.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/ammo.qc @@ -64,8 +64,8 @@ METHOD(AmmoBuff, m_tick, void(StatusEffect this, entity actor)) METHOD(AmmoBuff, describe, string(AmmoBuff this)) { TC(AmmoBuff, this); - return sprintf(_("The %s gives you infinite ammo until the buff expires, so you don't need to worry about running out of ammo\n\n" - "It also removes the need to reload any weapons that require reloading, like the %s and %s"), + return sprintf(_("The %s gives you infinite ammo until the buff expires, so you don't need to worry about running out of ammo.\n\n" + "It also removes the need to reload any weapons that require reloading, like the %s and %s."), COLORED_NAME_WITH_CONCAT(this, _("Buff")), COLORED_NAME(WEP_RIFLE), COLORED_NAME(WEP_OVERKILL_MACHINEGUN)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/bash.qc b/qcsrc/common/mutators/mutator/buffs/buff/bash.qc index c54b27bcf8..2e8f055d3a 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/bash.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/bash.qc @@ -23,8 +23,8 @@ vector buff_Bash_AttackerCalculateForce(vector frag_force, entity frag_target, e METHOD(BashBuff, describe, string(BashBuff this)) { TC(BashBuff, this); - return sprintf(_("The %s increases knockback force you deal, and makes you immune to knockback while the buff is active\n\n" - "It also slightly increases knockback you deal to yourself"), + return sprintf(_("The %s increases knockback force you deal, and makes you immune to knockback while the buff is active.\n\n" + "It also slightly increases knockback you deal to yourself."), COLORED_NAME_WITH_CONCAT(this, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/disability.qc b/qcsrc/common/mutators/mutator/buffs/buff/disability.qc index 7c1ae9de21..2561c3e0c0 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/disability.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/disability.qc @@ -46,8 +46,8 @@ MUTATOR_HOOKFUNCTION(buffs, WeaponSpeedFactor) METHOD(DisabilityBuff, describe, string(DisabilityBuff this)) { TC(DisabilityBuff, this); - return sprintf(_("The %s causes your enemies and monsters to slow down for a few seconds when you attack them, while the buff is active\n\n" - "This is particularly useful against speedy players, especially in %s"), + return sprintf(_("The %s causes your enemies and monsters to slow down for a few seconds when you attack them, while the buff is active.\n\n" + "This is particularly useful against speedy players, especially in %s."), COLORED_NAME_WITH_CONCAT(this, _("Buff")), COLORED_NAME(MAPINFO_TYPE_CTF)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/flight.qc b/qcsrc/common/mutators/mutator/buffs/buff/flight.qc index 864ac4a58b..3718da49cf 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/flight.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/flight.qc @@ -27,7 +27,7 @@ METHOD(FlightBuff, m_remove, void(StatusEffect this, entity actor, int removal_t METHOD(FlightBuff, describe, string(FlightBuff this)) { TC(FlightBuff, this); - return sprintf(_("While you have the %s, you can crouch while midair to switch your gravity, allowing flight"), + return sprintf(_("While you have the %s, you can crouch while midair to switch your gravity, allowing flight."), COLORED_NAME_WITH_CONCAT(this, _("Buff"))); } #endif diff --git a/qcsrc/common/mutators/mutator/buffs/buff/inferno.qc b/qcsrc/common/mutators/mutator/buffs/buff/inferno.qc index b9c0a792e4..d0c7021d5a 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/inferno.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/inferno.qc @@ -19,7 +19,7 @@ float buff_Inferno_CalculateDamage(float frag_damage) METHOD(InfernoBuff, describe, string(InfernoBuff this)) { TC(InfernoBuff, this); - return sprintf(_("The %s sets any enemies or monsters you attack alight, dealing burn damage to them for several seconds until the buff expires"), + return sprintf(_("The %s sets any enemies or monsters you attack alight, dealing burn damage to them for several seconds until the buff expires."), COLORED_NAME_WITH_CONCAT(this, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/jump.qc b/qcsrc/common/mutators/mutator/buffs/buff/jump.qc index a82d73366c..b93a8001a8 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/jump.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/jump.qc @@ -21,8 +21,8 @@ MUTATOR_HOOKFUNCTION(buffs, PlayerPhysics) METHOD(JumpBuff, describe, string(JumpBuff this)) { TC(JumpBuff, this); - return sprintf(_("The %s greatly increases your jump height, while the buff is active\n\n" - "It also makes you immune to fall damage"), + return sprintf(_("The %s greatly increases your jump height, while the buff is active.\n\n" + "It also makes you immune to fall damage."), COLORED_NAME_WITH_CONCAT(this, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/luck.qc b/qcsrc/common/mutators/mutator/buffs/buff/luck.qc index 9aeada4af6..52ad259e46 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/luck.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/luck.qc @@ -13,7 +13,7 @@ float buff_Luck_CalculateDamage(float frag_damage) METHOD(LuckBuff, describe, string(LuckBuff this)) { TC(LuckBuff, this); - return sprintf(_("While you have the %s, each attack has a chance of being a critical hit with greatly increased damage"), + return sprintf(_("While you have the %s, each attack has a chance of being a critical hit with greatly increased damage."), COLORED_NAME_WITH_CONCAT(this, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/magnet.qc b/qcsrc/common/mutators/mutator/buffs/buff/magnet.qc index 36def830ac..29374ac3f4 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/magnet.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/magnet.qc @@ -28,7 +28,7 @@ METHOD(MagnetBuff, m_tick, void(StatusEffect this, entity actor)) METHOD(MagnetBuff, describe, string(MagnetBuff this)) { TC(MagnetBuff, this); - return sprintf(_("The %s greatly increases your item pickup range, collecting nearby items for you while the buff is active"), + return sprintf(_("The %s greatly increases your item pickup range, collecting nearby items for you while the buff is active."), COLORED_NAME_WITH_CONCAT(this, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/medic.qc b/qcsrc/common/mutators/mutator/buffs/buff/medic.qc index 273b941a46..ec0cc392c1 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/medic.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/medic.qc @@ -24,8 +24,8 @@ float buff_Medic_CalculateSurviveDamage(float frag_damage, float health) METHOD(MedicBuff, describe, string(MedicBuff this)) { TC(MedicBuff, this); - return sprintf(_("The %s increases health regeneration speed, increases the maximum health you can have before health starts to rot, and reduces health rot speed until the buff expires\n\n" - "It also gives you a chance to survive a fatal hit, with a small amount of health left over"), + return sprintf(_("The %s increases health regeneration speed, increases the maximum health you can have before health starts to rot, and reduces health rot speed until the buff expires.\n\n" + "It also gives you a chance to survive a fatal hit, with a small amount of health left over."), COLORED_NAME_WITH_CONCAT(this, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/resistance.qc b/qcsrc/common/mutators/mutator/buffs/buff/resistance.qc index 4247701622..689a308904 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/resistance.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/resistance.qc @@ -10,8 +10,8 @@ float buff_Resistance_CalculateDamage(float frag_damage) METHOD(ResistanceBuff, describe, string(ResistanceBuff this)) { TC(ResistanceBuff, this); - return sprintf(_("The %s greatly reduces your damage taken while the buff is active\n\n" - "This also impacts the damage you deal to yourself"), + return sprintf(_("The %s greatly reduces your damage taken while the buff is active.\n\n" + "This also impacts the damage you deal to yourself."), COLORED_NAME_WITH_CONCAT(this, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/swapper.qc b/qcsrc/common/mutators/mutator/buffs/buff/swapper.qc index de4176e27b..4a93ef6ab7 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/swapper.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/swapper.qc @@ -84,9 +84,9 @@ MUTATOR_HOOKFUNCTION(buffs, ForbidThrowCurrentWeapon) METHOD(SwapperBuff, describe, string(SwapperBuff this)) { TC(SwapperBuff, this); - return sprintf(_("The %s allows you to press the ^3drop weapon^7 bind to switch places with a nearby enemy once\n\n" - "A common usage of this buff is to jump over the map's void, then swap with an enemy, to cause them to fall into the void\n\n" - "The range that the buff works over is limited, so sometimes it may do nothing if there are no enemies nearby"), + return sprintf(_("The %s allows you to press the ^3drop weapon^7 bind to switch places with a nearby enemy once.\n\n" + "A common usage of this buff is to jump over the map's void, then swap with an enemy, to cause them to fall into the void.\n\n" + "The range that the buff works over is limited, so sometimes it may do nothing if there are no enemies nearby."), COLORED_NAME_WITH_CONCAT(this, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/vampire.qc b/qcsrc/common/mutators/mutator/buffs/buff/vampire.qc index 9916f7c36f..0ff20f97d8 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/vampire.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/vampire.qc @@ -23,8 +23,8 @@ MUTATOR_HOOKFUNCTION(buffs, PlayerDamage_SplitHealthArmor) METHOD(VampireBuff, describe, string(VampireBuff this)) { TC(VampireBuff, this); - return sprintf(_("The %s converts some of the damage you deal to enemies and monsters into health for yourself, until the buff expires\n\n" - "In some sense, this is the opposite of the %s"), + return sprintf(_("The %s converts some of the damage you deal to enemies and monsters into health for yourself, until the buff expires.\n\n" + "In some sense, this is the opposite of the %s."), COLORED_NAME_WITH_CONCAT(this, _("Buff")), COLORED_NAME_WITH_CONCAT(BUFF_VENGEANCE, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/buffs/buff/vengeance.qc b/qcsrc/common/mutators/mutator/buffs/buff/vengeance.qc index a7c72436fd..80ae6ff824 100644 --- a/qcsrc/common/mutators/mutator/buffs/buff/vengeance.qc +++ b/qcsrc/common/mutators/mutator/buffs/buff/vengeance.qc @@ -20,8 +20,8 @@ float buff_Vengeance_CalculateDamage(float frag_damage) METHOD(VengeanceBuff, describe, string(VengeanceBuff this)) { TC(VengeanceBuff, this); - return sprintf(_("The %s reciprocates a portion of the damage enemies deal to you onto them, until the buff expires\n\n" - "In some sense, this is the opposite of the %s"), + return sprintf(_("The %s reciprocates a portion of the damage enemies deal to you onto them, until the buff expires.\n\n" + "In some sense, this is the opposite of the %s."), COLORED_NAME_WITH_CONCAT(this, _("Buff")), COLORED_NAME_WITH_CONCAT(BUFF_VAMPIRE, _("Buff"))); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/cloaked/cloaked.qc b/qcsrc/common/mutators/mutator/cloaked/cloaked.qc index f9118925dc..476b76a695 100644 --- a/qcsrc/common/mutators/mutator/cloaked/cloaked.qc +++ b/qcsrc/common/mutators/mutator/cloaked/cloaked.qc @@ -7,7 +7,7 @@ METHOD(MutatorCloaked, describe, string(MutatorCloaked this)) { TC(MutatorCloaked, this); return sprintf(_("The %s mutator makes all players nearly invisible, similar to the %s powerup. " - "This adds an extra layer of stealth and strategy to gameplay"), + "This adds an extra layer of stealth and strategy to gameplay."), COLORED_NAME(this), COLORED_NAME(ITEM_Invisibility)); } #endif diff --git a/qcsrc/common/mutators/mutator/dodging/dodging.qc b/qcsrc/common/mutators/mutator/dodging/dodging.qc index 77bb7aeec5..b2b853aeab 100644 --- a/qcsrc/common/mutators/mutator/dodging/dodging.qc +++ b/qcsrc/common/mutators/mutator/dodging/dodging.qc @@ -8,8 +8,8 @@ METHOD(MutatorDodging, describe, string(MutatorDodging this)) TC(MutatorDodging, this); return sprintf(_("%s is a mutator that enables dodging maneuvers, making evading attacks in close combat easier. " "If enabled, when you're standing on the ground and double tap a movement key, you will leap in that direction. " - "This also works while in contact with a wall, allowing quick speed gain if done repeatedly against a long wall\n\n" - "Some other mutators like %s enable this by default"), + "This also works while in contact with a wall, allowing quick speed gain if done repeatedly against a long wall.\n\n" + "Some other mutators like %s enable this by default."), COLORED_NAME(this), COLORED_NAME(MUTATOR_ok)); } #endif diff --git a/qcsrc/common/mutators/mutator/hook/hook.qc b/qcsrc/common/mutators/mutator/hook/hook.qc index e3f0770b0d..e3d5109bb9 100644 --- a/qcsrc/common/mutators/mutator/hook/hook.qc +++ b/qcsrc/common/mutators/mutator/hook/hook.qc @@ -8,9 +8,9 @@ METHOD(MutatorGrapplingHook, describe, string(MutatorGrapplingHook this)) { TC(MutatorGrapplingHook, this); return sprintf(_("The %s mutator gives all players a %s as their offhand weapon, used with ^3+hook^7. " - "It has unlimited ammo, but the ordinary secondary fire can't be used\n\n" - "Since it's given as an offhand, players can use it to move around and shoot at their enemies at the same time, opening up more gameplay possibilities than the regular %s\n\n" - "Note that it is overridden by the %s mutator"), + "It has unlimited ammo, but the ordinary secondary fire can't be used.\n\n" + "Since it's given as an offhand, players can use it to move around and shoot at their enemies at the same time, opening up more gameplay possibilities than the regular %s.\n\n" + "Note that it is overridden by the %s mutator."), COLORED_NAME(this), COLORED_NAME(WEP_HOOK), COLORED_NAME(WEP_HOOK), COLORED_NAME(MUTATOR_offhand_blaster)); } #endif diff --git a/qcsrc/common/mutators/mutator/instagib/instagib.qc b/qcsrc/common/mutators/mutator/instagib/instagib.qc index 70ac5cf1c8..bfc5d67e7d 100644 --- a/qcsrc/common/mutators/mutator/instagib/instagib.qc +++ b/qcsrc/common/mutators/mutator/instagib/instagib.qc @@ -12,14 +12,14 @@ METHOD(MutatorInstagib, describe, string(MutatorInstagib this)) { TC(MutatorInstagib, this); string s = sprintf(_("%s is a mutator that removes all weapons and weapon pickups and gives all players the %s, " - "which immediately frags players in a single shot, hence the name \"InstaGib\"\n\n" + "which immediately frags players in a single shot, hence the name \"InstaGib.\"\n\n" "Precise aim and ammo conservation are important, since you will suicide after 10 seconds if you run out of ammo. " - "Ammo (%s) can be picked up on the map often, or collected from dropped %s guns\n\n"), + "Ammo (%s) can be picked up on the map often, or collected from dropped %s guns.\n\n"), COLORED_NAME(this), COLORED_NAME(WEP_VAPORIZER), COLORED_NAME(ITEM_Cells), COLORED_NAME(WEP_VAPORIZER)); s = strcat(s, sprintf(_("Maps often have an %s on them, which will save you from being fragged when picked up (total extra lives is displayed as armor). " - "Other powerups often present on maps include %s and %s\n\n" + "Other powerups often present on maps include %s and %s.\n\n" "It is quite a common mutator present on many servers, mixing well with a lot of gamemodes but particularly %s. " - "Sometimes it's enabled alongside other mutators such as %s for added movement possibilities"), + "Sometimes it's enabled alongside other mutators such as %s for added movement possibilities."), COLORED_NAME(ITEM_ExtraLife), COLORED_NAME(ITEM_Speed), COLORED_NAME(ITEM_Invisibility), COLORED_NAME(MAPINFO_TYPE_DEATHMATCH), COLORED_NAME(MUTATOR_hook))); return s; } diff --git a/qcsrc/common/mutators/mutator/nades/nade/ammo.qc b/qcsrc/common/mutators/mutator/nades/nade/ammo.qc index ea86b1ad92..77f9b10050 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/ammo.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/ammo.qc @@ -69,8 +69,8 @@ METHOD(AmmoNade, describe, string(AmmoNade this)) { TC(AmmoNade, this); return sprintf(_("The %s detonates after a short delay, temporarily creating an orb around the point where it detonated for several seconds. " - "If your team members enter the orb they will recover ammo, and if enemies enter the sphere they will lose ammo\n\n" - "This does not impact weapon magazines, so it won't reload your weapons for you"), + "If your team members enter the orb they will recover ammo, and if enemies enter the sphere they will lose ammo.\n\n" + "This does not impact weapon magazines, so it won't reload your weapons for you."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/nades/nade/darkness.qc b/qcsrc/common/mutators/mutator/nades/nade/darkness.qc index d2178d84b1..87bf759d37 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/darkness.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/darkness.qc @@ -142,8 +142,8 @@ MUTATOR_HOOKFUNCTION(cl_nades, HUD_Draw_overlay) METHOD(DarknessNade, describe, string(DarknessNade this)) { TC(DarknessNade, this); - return sprintf(_("The %s detonates after a short delay, creating a dark field which temporarily blinds enemies who enter it\n\n" - "This is sort of the opposite of the %s"), + return sprintf(_("The %s detonates after a short delay, creating a dark field which temporarily blinds enemies who enter it.\n\n" + "This is sort of the opposite of the %s."), COLORED_NAME(this), COLORED_NAME(NADE_TYPE_VEIL)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/nades/nade/entrap.qc b/qcsrc/common/mutators/mutator/nades/nade/entrap.qc index 99ca888be5..919477e372 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/entrap.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/entrap.qc @@ -69,7 +69,7 @@ METHOD(EntrapNade, describe, string(EntrapNade this)) { TC(EntrapNade, this); return sprintf(_("The %s detonates after a short delay, temporarily creating an orb around the point where it detonated for several seconds. " - "Players and projectiles that enter the sphere will be slowed down, including yourself"), + "Players and projectiles that enter the sphere will be slowed down, including yourself."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/nades/nade/heal.qc b/qcsrc/common/mutators/mutator/nades/nade/heal.qc index 6d36b12225..5b6982deb5 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/heal.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/heal.qc @@ -44,7 +44,7 @@ METHOD(HealNade, describe, string(HealNade this)) { TC(HealNade, this); return sprintf(_("The %s detonates after a short delay, temporarily creating a healing orb around the point where it detonated for several seconds. " - "If your team members enter the orb they will recover health, and if enemies enter the sphere they will be harmed"), + "If your team members enter the orb they will recover health, and if enemies enter the sphere they will be harmed."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/nades/nade/ice.qc b/qcsrc/common/mutators/mutator/nades/nade/ice.qc index 8f57260af1..86cc5d3674 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/ice.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/ice.qc @@ -119,7 +119,7 @@ METHOD(IceNade, describe, string(IceNade this)) { TC(IceNade, this); return sprintf(_("The %s detonates after a short delay, freezing any enemies who walk within the explosion radius for a few seconds after the explosion. " - "While frozen, enemies are progressively dealt damage"), + "While frozen, enemies are progressively dealt damage."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/nades/nade/monster.qc b/qcsrc/common/mutators/mutator/nades/nade/monster.qc index 36ed81b8d3..67aa9c3d81 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/monster.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/monster.qc @@ -23,7 +23,7 @@ void nade_monster_boom(entity this) METHOD(MonsterNade, describe, string(MonsterNade this)) { TC(MonsterNade, this); - return sprintf(_("The %s explodes after a short delay, spawning one of four monster types"), + return sprintf(_("The %s explodes after a short delay, spawning one of four monster types."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/nades/nade/napalm.qc b/qcsrc/common/mutators/mutator/nades/nade/napalm.qc index b5470c67cc..2170d70b23 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/napalm.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/napalm.qc @@ -181,7 +181,7 @@ METHOD(NapalmNade, describe, string(NapalmNade this)) { TC(NapalmNade, this); return sprintf(_("The %s explodes after a short delay, spreading fiery napalm globs around in the fountain. " - "The napalm fire balls burn for a while, and damage players who get too close"), + "The napalm fire balls burn for a while, and damage players who get too close."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/nades/nade/normal.qc b/qcsrc/common/mutators/mutator/nades/nade/normal.qc index a764108475..f1dcb57d3f 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/normal.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/normal.qc @@ -13,7 +13,7 @@ void normal_nade_boom(entity this) METHOD(NormalNade, describe, string(NormalNade this)) { TC(NormalNade, this); - return sprintf(_("The (normal) %s explodes after a short delay, dealing damage to nearby players\n\n" + return sprintf(_("The (normal) %s explodes after a short delay, dealing damage to nearby players.\n\n" "Make sure you remember to throw it with ^3drop weapon^7, or else it will blow up in your hands!"), COLORED_NAME(this)); } diff --git a/qcsrc/common/mutators/mutator/nades/nade/spawn.qc b/qcsrc/common/mutators/mutator/nades/nade/spawn.qc index a1959b4d03..6e4c8c5c27 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/spawn.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/spawn.qc @@ -37,7 +37,7 @@ METHOD(SpawnNade, describe, string(SpawnNade this)) { TC(SpawnNade, this); return sprintf(_("The %s detonates after a short delay, temporarily setting your spawn point to where it detonated. " - "It is useful for cases where you want to go back to some point on the map after you die"), + "It is useful for cases where you want to go back to some point on the map after you die."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/nades/nade/translocate.qc b/qcsrc/common/mutators/mutator/nades/nade/translocate.qc index 9ac1db4738..fe0a5581c8 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/translocate.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/translocate.qc @@ -41,9 +41,9 @@ bool nade_translocate_DestroyDamage(entity this, entity attacker) METHOD(TranslocateNade, describe, string(TranslocateNade this)) { TC(TranslocateNade, this); - return sprintf(_("The %s detonates after a short delay, teleporting you to where it detonated\n\n" - "A common use of this nade is saving yourself from the void in space maps, however mastering this is very tricky\n\n" - "If this grenade is destroyed by an attacker, it will deal some damage to them"), + return sprintf(_("The %s detonates after a short delay, teleporting you to where it detonated.\n\n" + "A common use of this nade is saving yourself from the void in space maps, however mastering this is very tricky.\n\n" + "If this grenade is destroyed by an attacker, it will deal some damage to them."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/nades/nade/veil.qc b/qcsrc/common/mutators/mutator/nades/nade/veil.qc index c1c65763c5..82844fd01e 100644 --- a/qcsrc/common/mutators/mutator/nades/nade/veil.qc +++ b/qcsrc/common/mutators/mutator/nades/nade/veil.qc @@ -50,8 +50,8 @@ METHOD(VeilNade, describe, string(VeilNade this)) { TC(VeilNade, this); return sprintf(_("The %s detonates after a short delay, temporarily creating an orb around the point where it detonated for several seconds. " - "Players inside the orb will be invisible to those outside it\n\n" - "This is sort of the opposite of the %s"), + "Players inside the orb will be invisible to those outside it.\n\n" + "This is sort of the opposite of the %s."), COLORED_NAME(this), COLORED_NAME(NADE_TYPE_DARKNESS)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/new_toys/new_toys.qc b/qcsrc/common/mutators/mutator/new_toys/new_toys.qc index 97b094895b..f0a3f62fea 100644 --- a/qcsrc/common/mutators/mutator/new_toys/new_toys.qc +++ b/qcsrc/common/mutators/mutator/new_toys/new_toys.qc @@ -25,8 +25,8 @@ bool nt_IsNewToy(int w) METHOD(MutatorNewToys, describe, string(MutatorNewToys this)) { TC(MutatorNewToys, this); - string s = sprintf(_("The %s mutator, enabled by default, allows the spawning of new gimmicky weapons, sometimes replacing a core weapon\n\n" - "Since these weapons can't spawn in %s and %s, the %s mutator can't be enabled concurrently\n\n" + string s = sprintf(_("The %s mutator, enabled by default, allows the spawning of new gimmicky weapons, sometimes replacing a core weapon.\n\n" + "Since these weapons can't spawn in %s and %s, the %s mutator can't be enabled concurrently.\n\n" "The current %s weapons are:"), // do it like this so that the string doesn't need to change when the list is updated COLORED_NAME(this), COLORED_NAME(MUTATOR_mutator_instagib), COLORED_NAME(MUTATOR_ok), COLORED_NAME(this), COLORED_NAME(this)); FOREACH(Weapons, nt_IsNewToy(it.m_id), { diff --git a/qcsrc/common/mutators/mutator/nix/nix.qc b/qcsrc/common/mutators/mutator/nix/nix.qc index 389535380c..87b760e87c 100644 --- a/qcsrc/common/mutators/mutator/nix/nix.qc +++ b/qcsrc/common/mutators/mutator/nix/nix.qc @@ -5,7 +5,7 @@ METHOD(MutatorNIX, describe, string(MutatorNIX this)) { TC(MutatorNIX, this); return sprintf(_("%s (\"No Items Xonotic\") is a mutator that removes all weapon and ammo pickups from the map, and gives all players the same randomly selected weapon. " - "After some time, the weapon is reselected, and this repeats forever"), + "After some time, the weapon is reselected, and this repeats forever."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/mutators/mutator/offhand_blaster/offhand_blaster.qc b/qcsrc/common/mutators/mutator/offhand_blaster/offhand_blaster.qc index 9d300ef2ba..3ad310274a 100644 --- a/qcsrc/common/mutators/mutator/offhand_blaster/offhand_blaster.qc +++ b/qcsrc/common/mutators/mutator/offhand_blaster/offhand_blaster.qc @@ -8,9 +8,9 @@ METHOD(MutatorOffhandBlaster, describe, string(MutatorOffhandBlaster this)) { TC(MutatorOffhandBlaster, this); return sprintf(_("The %s mutator gives all players a %s as their offhand weapon, used with ^3+hook^7. " - "It can be fired at any time, but the ordinary secondary fire can't be used\n\n" - "Since it's given as an offhand, you can fire it at the same time as the ordinary %s while laser jumping to achieve even more height\n\n" - "Note that it overrides the %s mutator, since they use the same bind"), + "It can be fired at any time, but the ordinary secondary fire can't be used.\n\n" + "Since it's given as an offhand, you can fire it at the same time as the ordinary %s while laser jumping to achieve even more height.\n\n" + "Note that it overrides the %s mutator, since they use the same bind."), COLORED_NAME(this), COLORED_NAME(WEP_BLASTER), COLORED_NAME(WEP_BLASTER), COLORED_NAME(MUTATOR_hook)); } #endif diff --git a/qcsrc/common/mutators/mutator/overkill/overkill.qc b/qcsrc/common/mutators/mutator/overkill/overkill.qc index 161dd71e5c..8394a5e3c4 100644 --- a/qcsrc/common/mutators/mutator/overkill/overkill.qc +++ b/qcsrc/common/mutators/mutator/overkill/overkill.qc @@ -12,13 +12,13 @@ METHOD(MutatorOverkill, describe, string(MutatorOverkill this)) { TC(MutatorOverkill, this); - string s = sprintf(_("%s is a mutator that heavily modifies the game, giving players fewer but more powerful weapons, nades, and more movement options\n\n" + string s = sprintf(_("%s is a mutator that heavily modifies the game, giving players fewer but more powerful weapons, nades, and more movement options.\n\n" "In terms of weaponry, players have infinite ammo and spawn in with the %s, %s, and %s, and can pick up the %s and %s superweapons on the map sometimes. " - "These weapons are a lot more powerful than the regular weapons, so their time-to-kill is quite low\n\n" + "These weapons are a lot more powerful than the regular weapons, so their time-to-kill is quite low.\n\n" "The secondary fire of all weapons shoots a laser which does not damage or push enemies, but can be used to push yourself around. "), COLORED_NAME(this), COLORED_NAME(WEP_OVERKILL_SHOTGUN), COLORED_NAME(WEP_OVERKILL_MACHINEGUN), COLORED_NAME(WEP_OVERKILL_NEX), COLORED_NAME(WEP_OVERKILL_HMG), COLORED_NAME(WEP_OVERKILL_RPC)); - s = strcat(s, sprintf(_("Also since the %s mutator is active, all players have offhand nades\n\n" - "As for movement tricks, %s is enabled by default in %s, allowing for rapidly changing your movement direction"), + s = strcat(s, sprintf(_("Also since the %s mutator is active, all players have offhand nades.\n\n" + "As for movement tricks, %s is enabled by default in %s, allowing for rapidly changing your movement direction."), COLORED_NAME(MUTATOR_nades), COLORED_NAME(MUTATOR_dodging), COLORED_NAME(this))); return s; } diff --git a/qcsrc/common/mutators/mutator/pinata/pinata.qc b/qcsrc/common/mutators/mutator/pinata/pinata.qc index b02c7e50d3..de20cda2c8 100644 --- a/qcsrc/common/mutators/mutator/pinata/pinata.qc +++ b/qcsrc/common/mutators/mutator/pinata/pinata.qc @@ -5,7 +5,7 @@ METHOD(MutatorPinata, describe, string(MutatorPinata this)) { TC(MutatorPinata, this); return sprintf(_("%s is a mutator that makes players drop all their weapons when they die. " - "Without this mutator, players normally drop only their equipped weapon"), + "Without this mutator, players normally drop only their equipped weapon."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/mutators/mutator/powerups/powerup/invisibility.qc b/qcsrc/common/mutators/mutator/powerups/powerup/invisibility.qc index f9f3934842..b096c58e0e 100644 --- a/qcsrc/common/mutators/mutator/powerups/powerup/invisibility.qc +++ b/qcsrc/common/mutators/mutator/powerups/powerup/invisibility.qc @@ -49,8 +49,8 @@ METHOD(InvisibilityItem, describe, string(InvisibilityItem this)) { TC(InvisibilityItem, this); return sprintf(_("The %s powerup increases your translucency while the powerup is active, making it more difficult for enemies to see you. " - "This powerup is often present in %s\n\n" - "Since it is a powerup, it will drop if you die while holding it"), + "This powerup is often present in %s.\n\n" + "Since it is a powerup, it will drop if you die while holding it."), COLORED_NAME(this), COLORED_NAME(MUTATOR_mutator_instagib)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/powerups/powerup/shield.qc b/qcsrc/common/mutators/mutator/powerups/powerup/shield.qc index 3ce3670d02..6f1d2cf2fb 100644 --- a/qcsrc/common/mutators/mutator/powerups/powerup/shield.qc +++ b/qcsrc/common/mutators/mutator/powerups/powerup/shield.qc @@ -53,8 +53,8 @@ METHOD(ShieldItem, describe, string(ShieldItem this)) { TC(ShieldItem, this); return sprintf(_("The %s powerup greatly decreases the damage you take until the powerup expires, having a compounding effect with armor. " - "It also makes you more resistant to knockback\n\n" - "Since it is a powerup, it will drop if you die while holding it"), + "It also makes you more resistant to knockback.\n\n" + "Since it is a powerup, it will drop if you die while holding it."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/powerups/powerup/speed.qc b/qcsrc/common/mutators/mutator/powerups/powerup/speed.qc index 736f35a332..b475a38351 100644 --- a/qcsrc/common/mutators/mutator/powerups/powerup/speed.qc +++ b/qcsrc/common/mutators/mutator/powerups/powerup/speed.qc @@ -35,8 +35,8 @@ METHOD(SpeedItem, describe, string(SpeedItem this)) { TC(SpeedItem, this); return sprintf(_("The %s powerup increases your movement speed, attack speed, and health regeneration speed while the powerup is active. " - "However, it also makes you a bit more vulnerable to incoming attacks\n\n" - "Since it is a powerup, it will drop if you die while holding it"), + "However, it also makes you a bit more vulnerable to incoming attacks.\n\n" + "Since it is a powerup, it will drop if you die while holding it."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/powerups/powerup/strength.qc b/qcsrc/common/mutators/mutator/powerups/powerup/strength.qc index 45ec36ddff..a0aa6237f7 100644 --- a/qcsrc/common/mutators/mutator/powerups/powerup/strength.qc +++ b/qcsrc/common/mutators/mutator/powerups/powerup/strength.qc @@ -53,9 +53,9 @@ METHOD(StrengthItem, describe, string(StrengthItem this)) { TC(StrengthItem, this); return sprintf(_("The %s powerup greatly increases the damage you deal, until the powerup expires. " - "It also increases the knockback that your attacks deal\n\n" - "The damage and knockback you deal to yourself also increases but by a smaller amount\n\n" - "Since it is a powerup, it will drop if you die while holding it"), + "It also increases the knockback that your attacks deal.\n\n" + "The damage and knockback you deal to yourself also increases but by a smaller amount.\n\n" + "Since it is a powerup, it will drop if you die while holding it."), COLORED_NAME(this)); } #endif // MENUQC diff --git a/qcsrc/common/mutators/mutator/rocketflying/rocketflying.qc b/qcsrc/common/mutators/mutator/rocketflying/rocketflying.qc index d17f2de587..3c3b3bb222 100644 --- a/qcsrc/common/mutators/mutator/rocketflying/rocketflying.qc +++ b/qcsrc/common/mutators/mutator/rocketflying/rocketflying.qc @@ -7,7 +7,7 @@ METHOD(MutatorRocketFlying, describe, string(MutatorRocketFlying this)) { TC(MutatorRocketFlying, this); return sprintf(_("The %s mutator removes the slight delay when immediately detonating a %s rocket after firing. " - "This allows for rockets fired to be detonated much closer to your hitbox, so they can give you a much larger speed boost, also allowing flying around the map"), + "This allows for rockets fired to be detonated much closer to your hitbox, so they can give you a much larger speed boost, also allowing flying around the map."), COLORED_NAME(this), COLORED_NAME(WEP_DEVASTATOR)); } #endif diff --git a/qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc b/qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc index 54c08989ed..d7425bc1d6 100644 --- a/qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc +++ b/qcsrc/common/mutators/mutator/touchexplode/touchexplode.qc @@ -4,8 +4,8 @@ METHOD(MutatorTouchExplode, describe, string(MutatorTouchExplode this)) { TC(MutatorTouchExplode, this); - return sprintf(_("The %s mutator causes an explosion when two players collide if it is enabled\n\n" - "This is a nice way to add some silly fun to a server, but it also does allow for the use of new tactics in some gamemodes"), + return sprintf(_("The %s mutator causes an explosion when two players collide if it is enabled.\n\n" + "This is a nice way to add some silly fun to a server, but it also does allow for the use of new tactics in some gamemodes."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/mutators/mutator/vampire/vampire.qc b/qcsrc/common/mutators/mutator/vampire/vampire.qc index 64cd2afe09..c450bb5710 100644 --- a/qcsrc/common/mutators/mutator/vampire/vampire.qc +++ b/qcsrc/common/mutators/mutator/vampire/vampire.qc @@ -7,8 +7,8 @@ METHOD(MutatorVampire, describe, string(MutatorVampire this)) { TC(MutatorVampire, this); return sprintf(_("The %s mutator gives all players a permanent version of the %s. " - "However, unlike the normal %s, when this mutator is enabled players' health can go way above the usual limit of 200\n\n" - "Additionally the amount of health players get is equal to the damage they deal, which isn't normaly the case with the %s"), + "However, unlike the normal %s, when this mutator is enabled players' health can go way above the usual limit of 200.\n\n" + "Additionally the amount of health players get is equal to the damage they deal, which isn't normaly the case with the %s."), COLORED_NAME(this), COLORED_NAME_WITH_CONCAT(BUFF_VAMPIRE, _("Buff")), COLORED_NAME_WITH_CONCAT(BUFF_VAMPIRE, _("Buff")), COLORED_NAME_WITH_CONCAT(BUFF_VAMPIRE, _("Buff"))); } #endif diff --git a/qcsrc/common/mutators/mutator/walljump/walljump.qc b/qcsrc/common/mutators/mutator/walljump/walljump.qc index 7eef1306fc..ec5bdeb7d0 100644 --- a/qcsrc/common/mutators/mutator/walljump/walljump.qc +++ b/qcsrc/common/mutators/mutator/walljump/walljump.qc @@ -78,8 +78,8 @@ METHOD(MutatorWallJump, describe, string(MutatorWallJump this)) { TC(MutatorWallJump, this); return sprintf(_("%s is a mutator that enables jumping off walls for added mobility. " - "To do a wall jump, tap ^3+jump^7 when against a wall\n\n" - "This mutator adds a bit of versatility, allowing for more dynamic and unpredictable movement"), + "To do a wall jump, tap ^3+jump^7 when against a wall.\n\n" + "This mutator adds a bit of versatility, allowing for more dynamic and unpredictable movement."), COLORED_NAME(this)); } #endif diff --git a/qcsrc/common/turrets/turret/ewheel.qc b/qcsrc/common/turrets/turret/ewheel.qc index 974af4a7a9..f4265bd1ad 100644 --- a/qcsrc/common/turrets/turret/ewheel.qc +++ b/qcsrc/common/turrets/turret/ewheel.qc @@ -247,8 +247,8 @@ METHOD(EWheel, tr_setup, void(EWheel this, entity it)) METHOD(EWheel, describe, string(EWheel this)) { TC(Ewheel, this); - return sprintf(_("The %s is a mobile turret that rolls around, attacking its targets when they enter its line of sight\n\n" - "It attacks by shooting laser beams similar to those of the %s, from both of its two cannons"), + return sprintf(_("The %s is a mobile turret that rolls around, attacking its targets when they enter its line of sight.\n\n" + "It attacks by shooting laser beams similar to those of the %s, from both of its two cannons."), COLORED_NAME(this), COLORED_NAME(WEP_BLASTER)); } diff --git a/qcsrc/common/turrets/turret/flac.qc b/qcsrc/common/turrets/turret/flac.qc index 8deafec9dc..3dd16bd4bd 100644 --- a/qcsrc/common/turrets/turret/flac.qc +++ b/qcsrc/common/turrets/turret/flac.qc @@ -21,8 +21,8 @@ METHOD(Flac, tr_setup, void(Flac this, entity it)) METHOD(Flac, describe, string(Flac this)) { TC(Flac, this); - return sprintf(_("The %s is a turret similar to flak cannons, instead firing anti-projectile flak shells to take down projectiles fired by its targets\n\n" - "The shells it shoots are against projectiles such as the %s secondary fire grenade, %s secondary fire balls, %s rockets, and other missiles"), + return sprintf(_("The %s is a turret similar to flak cannons, instead firing anti-projectile flak shells to take down projectiles fired by its targets.\n\n" + "The shells it shoots are against projectiles such as the %s secondary fire grenade, %s secondary fire balls, %s rockets, and other missiles."), COLORED_NAME(this), COLORED_NAME(WEP_MORTAR), COLORED_NAME(WEP_ELECTRO), COLORED_NAME(WEP_DEVASTATOR)); } diff --git a/qcsrc/common/turrets/turret/fusionreactor.qc b/qcsrc/common/turrets/turret/fusionreactor.qc index 81a531065a..90f8915336 100644 --- a/qcsrc/common/turrets/turret/fusionreactor.qc +++ b/qcsrc/common/turrets/turret/fusionreactor.qc @@ -58,8 +58,8 @@ METHOD(FusionReactor, describe, string(FusionReactor this)) { TC(FusionReactor, this); return sprintf(_("The %s is a bit of a unique turret, instead helping out other turrets rather than directly attacking its targets. " - "It has no weapon of its own, and instead works by generating power for nearby turrets, so that they can attack their shared targets more often\n\n" - "This is the only turret that doesn't directly attack its targets"), + "It has no weapon of its own, and instead works by generating power for nearby turrets, so that they can attack their shared targets more often.\n\n" + "This is the only turret that doesn't directly attack its targets."), COLORED_NAME(this)); } diff --git a/qcsrc/common/turrets/turret/hellion.qc b/qcsrc/common/turrets/turret/hellion.qc index 8452cb024c..913871e1cd 100644 --- a/qcsrc/common/turrets/turret/hellion.qc +++ b/qcsrc/common/turrets/turret/hellion.qc @@ -27,8 +27,8 @@ METHOD(Hellion, tr_setup, void(Hellion this, entity it)) METHOD(Hellion, describe, string(Hellion this)) { TC(Hellion, this); - return sprintf(_("The %s fires homing missiles similar to those of the %s towards its targets\n\n" - "Although the missiles usually deal less damage than a %s rocket, the %s has two cannons so it can dish out quite the punch"), + return sprintf(_("The %s fires homing missiles similar to those of the %s towards its targets.\n\n" + "Although the missiles usually deal less damage than a %s rocket, the %s has two cannons so it can dish out quite the punch."), COLORED_NAME(this), COLORED_NAME(WEP_DEVASTATOR), COLORED_NAME(WEP_DEVASTATOR), COLORED_NAME(this)); } diff --git a/qcsrc/common/turrets/turret/hk.qc b/qcsrc/common/turrets/turret/hk.qc index 51d3b26b9f..2417b2ba68 100644 --- a/qcsrc/common/turrets/turret/hk.qc +++ b/qcsrc/common/turrets/turret/hk.qc @@ -52,7 +52,7 @@ METHOD(HunterKiller, describe, string(HunterKiller this)) { TC(HunterKiller, this); return sprintf(_("The %s fires a single powerful homing rocket with the ability to evade obstacles to find its target. " - "The rocket it fires is similar to that of the %s"), + "The rocket it fires is similar to that of the %s."), COLORED_NAME(this), COLORED_NAME(WEP_DEVASTATOR)); } diff --git a/qcsrc/common/turrets/turret/machinegun.qc b/qcsrc/common/turrets/turret/machinegun.qc index 73da02f9a7..a7ccf3016e 100644 --- a/qcsrc/common/turrets/turret/machinegun.qc +++ b/qcsrc/common/turrets/turret/machinegun.qc @@ -20,7 +20,7 @@ METHOD(MachineGunTurret, tr_setup, void(MachineGunTurret this, entity it)) METHOD(MachineGunTurret, describe, string(MachineGunTurret this)) { TC(MachineGunTurret, this); - return sprintf(_("As the name suggests, the %s fires bullets in a burst at its targets, similar to the %s"), + return sprintf(_("As the name suggests, the %s fires bullets in a burst at its targets, similar to the %s."), COLORED_NAME(this), COLORED_NAME(WEP_MACHINEGUN)); } diff --git a/qcsrc/common/turrets/turret/mlrs.qc b/qcsrc/common/turrets/turret/mlrs.qc index 49d87523e6..7086ac7551 100644 --- a/qcsrc/common/turrets/turret/mlrs.qc +++ b/qcsrc/common/turrets/turret/mlrs.qc @@ -31,9 +31,9 @@ METHOD(MLRSTurret, tr_setup, void(MLRSTurret this, entity it)) METHOD(MLRSTurret, describe, string(MLRSTurret this)) { TC(MLRSTurret, this); - return sprintf(_("The %s fires a rapid burst of 6 rockets similar to those of the %s towards its targets\n\n" + return sprintf(_("The %s fires a rapid burst of 6 rockets similar to those of the %s towards its targets.\n\n" "Getting caught in the line of fire of this turret can be very deadly, " - "but thankfully it doesn't shoot if you get too close, so as to not damage itself"), + "but thankfully it doesn't shoot if you get too close, so as to not damage itself."), COLORED_NAME(this), COLORED_NAME(WEP_DEVASTATOR)); } diff --git a/qcsrc/common/turrets/turret/phaser.qc b/qcsrc/common/turrets/turret/phaser.qc index 1706c3ba39..cc67d00733 100644 --- a/qcsrc/common/turrets/turret/phaser.qc +++ b/qcsrc/common/turrets/turret/phaser.qc @@ -48,8 +48,8 @@ bool turret_phaser_firecheck(entity this) METHOD(PhaserTurret, describe, string(PhaserTurret this)) { TC(PhaserTurret, this); - return sprintf(_("The %s is a turret that fires an invisible beam of energy towards its targets\n\n" - "Looks are deceiving with the %s, since although the beam of energy can't be seen, it constantly deals damage to and slows down players who intercept its path"), + return sprintf(_("The %s is a turret that fires an invisible beam of energy towards its targets.\n\n" + "Looks are deceiving with the %s, since although the beam of energy can't be seen, it constantly deals damage to and slows down players who intercept its path."), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/turrets/turret/plasma.qc b/qcsrc/common/turrets/turret/plasma.qc index 2cebb3bed0..ca385f76e3 100644 --- a/qcsrc/common/turrets/turret/plasma.qc +++ b/qcsrc/common/turrets/turret/plasma.qc @@ -52,8 +52,8 @@ METHOD(PlasmaTurret, tr_setup, void(PlasmaTurret this, entity it)) METHOD(PlasmaTurret, describe, string(PlasmaTurret this)) { TC(PlasmaTurret, this); - return sprintf(_("The %s is a turret that fires electric balls forwards, similar to those of the %s\n\n" - "It is a weaker version of the %s, which has two electric ball cannons"), + return sprintf(_("The %s is a turret that fires electric balls forwards, similar to those of the %s.\n\n" + "It is a weaker version of the %s, which has two electric ball cannons."), COLORED_NAME(this), COLORED_NAME(WEP_ELECTRO), COLORED_NAME(TUR_PLASMA_DUAL)); } diff --git a/qcsrc/common/turrets/turret/plasma_dual.qc b/qcsrc/common/turrets/turret/plasma_dual.qc index e3e0894416..345db54b7c 100644 --- a/qcsrc/common/turrets/turret/plasma_dual.qc +++ b/qcsrc/common/turrets/turret/plasma_dual.qc @@ -40,8 +40,8 @@ METHOD(DualPlasmaTurret, tr_think, void(DualPlasmaTurret thistur, entity it)) METHOD(DualPlasmaTurret, describe, string(DualPlasmaTurret this)) { TC(DualPlasmaTurret, this); - return sprintf(_("The %s is a turret that fires electric balls forwards from its two cannons, shooting balls similar to those of the %s\n\n" - "It is a stronger version of the %s, which only has one electric ball cannon"), + return sprintf(_("The %s is a turret that fires electric balls forwards from its two cannons, shooting balls similar to those of the %s.\n\n" + "It is a stronger version of the %s, which only has one electric ball cannon."), COLORED_NAME(this), COLORED_NAME(WEP_ELECTRO), COLORED_NAME(TUR_PLASMA)); } diff --git a/qcsrc/common/turrets/turret/tesla.qc b/qcsrc/common/turrets/turret/tesla.qc index e3fba0634d..0f5242ae0e 100644 --- a/qcsrc/common/turrets/turret/tesla.qc +++ b/qcsrc/common/turrets/turret/tesla.qc @@ -91,8 +91,8 @@ bool turret_tesla_firecheck(entity this) METHOD(TeslaCoil, describe, string(TeslaCoil this)) { TC(TeslaCoil, this); - return sprintf(_("The %s is a turret that electrocutes all who dare come near it, sending powerful high-voltage arcs of lightning to strike its targets\n\n" - "Since the arcs of lightning can jump between nearby targets, it is best to just stay away from the %s"), + return sprintf(_("The %s is a turret that electrocutes all who dare come near it, sending powerful high-voltage arcs of lightning to strike its targets.\n\n" + "Since the arcs of lightning can jump between nearby targets, it is best to just stay away from the %s."), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/turrets/turret/walker.qc b/qcsrc/common/turrets/turret/walker.qc index 54ca49f85b..3d06043528 100644 --- a/qcsrc/common/turrets/turret/walker.qc +++ b/qcsrc/common/turrets/turret/walker.qc @@ -647,9 +647,9 @@ METHOD(WalkerTurret, tr_setup, void(WalkerTurret this, entity it)) METHOD(WalkerTurret, describe, string(WalkerTurret this)) { TC(WalkerTurret, this); - return sprintf(_("The %s is an arachnid-like walking turret that hunts down its targets\n\n" + return sprintf(_("The %s is an arachnid-like walking turret that hunts down its targets.\n\n" "It has two weapons, both a machinegun like the %s for medium range combat, and a rocket launcher shooting homing missiles like the %s for long range targets. " - "It also has the ability to melee close by targets"), + "It also has the ability to melee close by targets."), COLORED_NAME(this), COLORED_NAME(WEP_MACHINEGUN), COLORED_NAME(WEP_DEVASTATOR)); } diff --git a/qcsrc/common/vehicles/vehicle/bumblebee.qc b/qcsrc/common/vehicles/vehicle/bumblebee.qc index 96d438e443..8130c2845c 100644 --- a/qcsrc/common/vehicles/vehicle/bumblebee.qc +++ b/qcsrc/common/vehicles/vehicle/bumblebee.qc @@ -981,11 +981,11 @@ METHOD(Bumblebee, vr_setup, void(Bumblebee thisveh, entity instance)) METHOD(Bumblebee, describe, string(Bumblebee this)) { TC(Bumblebee, this); - return sprintf(_("The %s vehicle seats up to three passengers, who are given different roles based on the order they enter\n\n" + return sprintf(_("The %s vehicle seats up to three passengers, who are given different roles based on the order they enter.\n\n" "The first player to enter will be the pilot, flying the vehicle up into the skies. " - "The first player can also shoot a green healing wave to heal other teammates on the ground\n\n" - "The second player to enter is the right gunner and the third player to enter is the left gunner\n\n" - "When the pilot exits the vehicle, the players switch roles by moving up in position"), + "The first player can also shoot a green healing wave to heal other teammates on the ground.\n\n" + "The second player to enter is the right gunner and the third player to enter is the left gunner.\n\n" + "When the pilot exits the vehicle, the players switch roles by moving up in position."), COLORED_NAME(this)); } diff --git a/qcsrc/common/vehicles/vehicle/racer.qc b/qcsrc/common/vehicles/vehicle/racer.qc index ffd8c6060d..413e3c3398 100644 --- a/qcsrc/common/vehicles/vehicle/racer.qc +++ b/qcsrc/common/vehicles/vehicle/racer.qc @@ -647,9 +647,9 @@ METHOD(Racer, describe, string(Racer this)) { TC(Racer, this); return sprintf(_("The %s vehicle looks like a jet, but does not fly uwpards very well. " - "It seats only one passenger, who becomes the pilot\n\n" - "It can be accelerated by pressing the ^3+jump^7 bind, which consumes power from the same source as the primary weapon\n\n" - "The %s's primary weapon is a laser and the secondary weapon is energy balls that explode on impact"), + "It seats only one passenger, who becomes the pilot.\n\n" + "It can be accelerated by pressing the ^3+jump^7 bind, which consumes power from the same source as the primary weapon.\n\n" + "The %s's primary weapon is a laser and the secondary weapon is energy balls that explode on impact."), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/vehicles/vehicle/raptor.qc b/qcsrc/common/vehicles/vehicle/raptor.qc index 20b8b1991b..20fab12412 100644 --- a/qcsrc/common/vehicles/vehicle/raptor.qc +++ b/qcsrc/common/vehicles/vehicle/raptor.qc @@ -846,11 +846,11 @@ METHOD(Raptor, vr_setup, void(Raptor thisveh, entity instance)) METHOD(Raptor, describe, string(Raptor this)) { TC(Raptor, this); - return sprintf(_("The %s vehicle is a flying vehicle that takes only one pilot, who can also opearate two weapons\n\n" + return sprintf(_("The %s vehicle is a flying vehicle that takes only one pilot, who can also opearate two weapons.\n\n" "The two weapons have different reticles for them similar to the %s. " "The primary weapon is laser-based, and is shot toward the white reticle. " "The secondary weapon drops bombs to the ground, aiming towards the green reticle. " - "The white reticle always points at the head of the vehicle, while the green reticle's location is determined by the momentum of the vehicle"), + "The white reticle always points at the head of the vehicle, while the green reticle's location is determined by the momentum of the vehicle."), COLORED_NAME(this), COLORED_NAME(VEH_SPIDERBOT)); } diff --git a/qcsrc/common/vehicles/vehicle/spiderbot.qc b/qcsrc/common/vehicles/vehicle/spiderbot.qc index c0e49db193..2170db654d 100644 --- a/qcsrc/common/vehicles/vehicle/spiderbot.qc +++ b/qcsrc/common/vehicles/vehicle/spiderbot.qc @@ -651,12 +651,12 @@ METHOD(Spiderbot, vr_setup, void(Spiderbot thisveh, entity instance)) METHOD(Spiderbot, describe, string(Spiderbot this)) { TC(Spiderbot, this); - return sprintf(_("The %s vehicle walks and jumps around, and takes only one rider\n\n" - "It can jump from very high altitudes while protecting the rider\n\n" + return sprintf(_("The %s vehicle walks and jumps around, and takes only one rider.\n\n" + "It can jump from very high altitudes while protecting the rider.\n\n" "It has two weapons the rider can control, which have different reticles for them similar to the %s. " "The primary weapon is a machine gun, and is shot toward the green reticle. " "The secondary weapon shoots rockets towards the white reticle. " - "The white reticle points to the front of the vehicle, while the green reticle also points to the front, with a bit of delay when the %s rotates"), + "The white reticle points to the front of the vehicle, while the green reticle also points to the front, with a bit of delay when the %s rotates."), COLORED_NAME(this), COLORED_NAME(VEH_RAPTOR), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/arc.qc b/qcsrc/common/weapons/weapon/arc.qc index 2c80880289..672a1bdcdc 100644 --- a/qcsrc/common/weapons/weapon/arc.qc +++ b/qcsrc/common/weapons/weapon/arc.qc @@ -1514,10 +1514,10 @@ NET_HANDLE(ENT_CLIENT_ARC_BEAM, bool isnew) METHOD(Arc, describe, string(Arc this)) { TC(Arc, this); - return sprintf(_("The %s fires a continuous stream of electricity, steadily dealing damage to any enemies that cross its path\n\n" - "The secondary fire rapidly shoots electro balls forward, exploding on impact and dealing some splash damage\n\n" - "It consumes %s ammo, steadily churning through your supply to maintain the stream\n\n" - "The %s is quite a versatile weapon, however it is more effective at close to medium ranges, since the stream is not instantaneous"), + return sprintf(_("The %s fires a continuous stream of electricity, steadily dealing damage to any enemies that cross its path.\n\n" + "The secondary fire rapidly shoots electro balls forward, exploding on impact and dealing some splash damage.\n\n" + "It consumes %s ammo, steadily churning through your supply to maintain the stream.\n\n" + "The %s is quite a versatile weapon, however it is more effective at close to medium ranges, since the stream is not instantaneous."), COLORED_NAME(this), COLORED_NAME(ITEM_Cells), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/blaster.qc b/qcsrc/common/weapons/weapon/blaster.qc index 899c538917..1ab24eada6 100644 --- a/qcsrc/common/weapons/weapon/blaster.qc +++ b/qcsrc/common/weapons/weapon/blaster.qc @@ -157,12 +157,12 @@ METHOD(Blaster, wr_impacteffect, void(entity thiswep, entity actor)) METHOD(Blaster, describe, string(Blaster this)) { TC(Blaster, this); - return sprintf(_("The %s is one of the two main default weapons, firing a relatively weak high speed laser forwards, dealing some splash damage but importantly a lot of knockback\n\n" - "It has no secondary fire, instead switching to the previously selected weapon\n\n" - "It doesn't require ammo, meaning it is a great choice if you are running low on ammo and need to preserve some\n\n" - "The %s is always available so ends up being used a lot when players spawn in, but it's difficult to master when used over a medium to long range\n\n" + return sprintf(_("The %s is one of the two main default weapons, firing a relatively weak high speed laser forwards, dealing some splash damage but importantly a lot of knockback.\n\n" + "It has no secondary fire, instead switching to the previously selected weapon.\n\n" + "It doesn't require ammo, meaning it is a great choice if you are running low on ammo and need to preserve some.\n\n" + "The %s is always available so ends up being used a lot when players spawn in, but it's difficult to master when used over a medium to long range.\n\n" "One of the most common uses of the %s is \"laser jumping,\" where you can gain height by aiming down, jumping, then firing to boost yourself up. " - "Because it does a lot of knockback, another common usage is alternating between a high damage weapon and the %s to throw the enemy's aim off"), + "Because it does a lot of knockback, another common usage is alternating between a high damage weapon and the %s to throw the enemy's aim off."), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/crylink.qc b/qcsrc/common/weapons/weapon/crylink.qc index 0e1adfe792..743ab8e1ec 100644 --- a/qcsrc/common/weapons/weapon/crylink.qc +++ b/qcsrc/common/weapons/weapon/crylink.qc @@ -636,13 +636,13 @@ METHOD(Crylink, describe, string(Crylink this)) TC(Crylink, this); return sprintf(_("The %s fires bursts of laser-like projectiles, spreading out as they travel away, and deflecting off walls. " "If the primary fire is held, when it's released the projectiles will converge before spreading out again, " - "which can be utilized to deal more damage to an enemy by making the projectiles converge on them\n\n" - "The secondary fire shoots the projectiles together in a tight group, so it is often the better option in situations where the enemy is an easy target to hit\n\n" - "It consumes %s ammo for each projectile, which is shared by several weapons\n\n" - "Close to medium range is the ideal time to use the %s, although the secondary fire can be useful for long range combat sometimes\n\n" + "which can be utilized to deal more damage to an enemy by making the projectiles converge on them.\n\n" + "The secondary fire shoots the projectiles together in a tight group, so it is often the better option in situations where the enemy is an easy target to hit.\n\n" + "It consumes %s ammo for each projectile, which is shared by several weapons.\n\n" + "Close to medium range is the ideal time to use the %s, although the secondary fire can be useful for long range combat sometimes.\n\n" "The %s deals knockback in a unique way, pulling the player from their center to the point of impact. " "This makes it one of the best weapons to slow someone down if you are chasing them, particularly with the secondary fire. " - "Another common use of the %s is \"crylink running,\" where you partially angle down and use the secondary fire to pull yourself forwards, in order to gain speed"), + "Another common use of the %s is \"crylink running,\" where you partially angle down and use the secondary fire to pull yourself forwards, in order to gain speed."), COLORED_NAME(this), COLORED_NAME(ITEM_Cells), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/devastator.qc b/qcsrc/common/weapons/weapon/devastator.qc index b7f3f5a63e..6bfb2bde78 100644 --- a/qcsrc/common/weapons/weapon/devastator.qc +++ b/qcsrc/common/weapons/weapon/devastator.qc @@ -614,13 +614,13 @@ METHOD(Devastator, describe, string(Devastator this)) { TC(Devastator, this); return sprintf(_("The %s launches a remote controlled rocket, dealing significant damage when it explodes on impact. " - "If the primary fire is held, the rocket can be guided by the user's aim, allowing steering it towards enemies\n\n" - "The secondary fire can be used to immediately detonate the most recently fired rocket, allowing dealing damage to enemies even if the rocket barely missed colliding with them\n\n" - "It consumes a bunch of %s ammo for each rocket, which can end up being depleted quickly, so often players alternate with another weapon like %s\n\n" + "If the primary fire is held, the rocket can be guided by the user's aim, allowing steering it towards enemies.\n\n" + "The secondary fire can be used to immediately detonate the most recently fired rocket, allowing dealing damage to enemies even if the rocket barely missed colliding with them.\n\n" + "It consumes a bunch of %s ammo for each rocket, which can end up being depleted quickly, so often players alternate with another weapon like %s.\n\n" "Due to its high damage output, the %s is one of the most commonly used weapons. " "It can be used in almost any scenario, working best in medium range combat. " - "In close range combat, the large splash radius means often rockets can damage yourself as well as the enemy\n\n" - "Due to the ability to remotely detonate rockets, a common usage is \"rocket flying,\" where you fire a rocket and immediately detonate it to boost yourself while mid-air"), + "In close range combat, the large splash radius means often rockets can damage yourself as well as the enemy.\n\n" + "Due to the ability to remotely detonate rockets, a common usage is \"rocket flying,\" where you fire a rocket and immediately detonate it to boost yourself while mid-air."), COLORED_NAME(this), COLORED_NAME(ITEM_Rockets), COLORED_NAME(WEP_VORTEX), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/electro.qc b/qcsrc/common/weapons/weapon/electro.qc index 04bb7efc92..8baa0142a9 100644 --- a/qcsrc/common/weapons/weapon/electro.qc +++ b/qcsrc/common/weapons/weapon/electro.qc @@ -781,13 +781,13 @@ METHOD(Electro, wr_impacteffect, void(entity thiswep, entity actor)) METHOD(Electro, describe, string(Electro this)) { TC(Electro, this); - return sprintf(_("The %s shoots electric balls forwards, dealing some splash damage when they burst on impact\n\n" + return sprintf(_("The %s shoots electric balls forwards, dealing some splash damage when they burst on impact.\n\n" "The secondary fire launches similar balls that are influenced by gravity, " "so they can be laid around the map at high traffic locations (like the flag in Capture The Flag) to damage enemies that walk by. " - "The balls burst after some time, and can be forced to burst in a \"combo\" if a primary fire ball bursts near them\n\n" - "It consumes some %s ammo for each ball\n\n" + "The balls burst after some time, and can be forced to burst in a \"combo\" if a primary fire ball bursts near them.\n\n" + "It consumes some %s ammo for each ball.\n\n" "The %s is one of the best spam weapons to use in crowded areas, since combos can deal tons of damage, if the enemy is close enough. " - "Since the primary fire doesn't travel particularly fast, the %s is not useful in many other situations"), + "Since the primary fire doesn't travel particularly fast, the %s is not useful in many other situations."), COLORED_NAME(this), COLORED_NAME(ITEM_Cells), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/fireball.qc b/qcsrc/common/weapons/weapon/fireball.qc index b1c634e2a7..ac7539b6de 100644 --- a/qcsrc/common/weapons/weapon/fireball.qc +++ b/qcsrc/common/weapons/weapon/fireball.qc @@ -438,12 +438,12 @@ METHOD(Fireball, wr_impacteffect, void(entity thiswep, entity actor)) METHOD(Fireball, describe, string(Fireball this)) { TC(Fireball, this); - return sprintf(_("The %s supercharges then fires a massive fireball in a straight line, dealing heaps of splash damage over a large radius on impact\n\n" - "The secondary fire launches flaming balls that set nearby players alight\n\n" - "It is a superweapon, so isn't often found in game\n\n" - "It doesn't require ammo, but it is destroyed after some time\n\n" + return sprintf(_("The %s supercharges then fires a massive fireball in a straight line, dealing heaps of splash damage over a large radius on impact.\n\n" + "The secondary fire launches flaming balls that set nearby players alight.\n\n" + "It is a superweapon, so isn't often found in game.\n\n" + "It doesn't require ammo, but it is destroyed after some time.\n\n" "Since the %s takes a moment to charge and the fireball travels slowly, using it effectively may be difficult, " - "but if done properly it can deal a ton of damage"), + "but if done properly it can deal a ton of damage."), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/hagar.qc b/qcsrc/common/weapons/weapon/hagar.qc index 8cb824cc44..97b63dd69c 100644 --- a/qcsrc/common/weapons/weapon/hagar.qc +++ b/qcsrc/common/weapons/weapon/hagar.qc @@ -495,12 +495,12 @@ METHOD(Hagar, wr_impacteffect, void(entity thiswep, entity actor)) METHOD(Hagar, describe, string(Hagar this)) { TC(Hagar, this); - return sprintf(_("The %s rapidly fires small propelled rockets forwards, dealing some splash damage on impact\n\n" + return sprintf(_("The %s rapidly fires small propelled rockets forwards, dealing some splash damage on impact.\n\n" "When the secondary fire is held, multiple rockets are loaded up, and they're shot at the same time when released. " - "These rockets can't be held forever, so it will fire itself after some time (after a warning beep) if the secondary fire isn't released\n\n" - "It consumes %s ammo for each rocket\n\n" + "These rockets can't be held forever, so it will fire itself after some time (after a warning beep) if the secondary fire isn't released.\n\n" + "It consumes %s ammo for each rocket.\n\n" "The %s works best over close to medium ranges, since it's hard to land hits at a long distance. " - "A common usage is fully loading the secondary fire before turning a corner, so you can surprise any enemies around the corner with a bunch of rockets to the face"), + "A common usage is fully loading the secondary fire before turning a corner, so you can surprise any enemies around the corner with a bunch of rockets to the face."), COLORED_NAME(this), COLORED_NAME(ITEM_Rockets), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/hlac.qc b/qcsrc/common/weapons/weapon/hlac.qc index aa707a6120..b6a2ad8e87 100644 --- a/qcsrc/common/weapons/weapon/hlac.qc +++ b/qcsrc/common/weapons/weapon/hlac.qc @@ -242,13 +242,13 @@ METHOD(HLAC, describe, string(HLAC this)) { TC(HLAC, this); return sprintf(_("The %s (or HLAC for short) fires lasers in quick succession. " - "The projectiles it fires are similar to those of the %s\n\n" - "The secondary fire shoots a randomly scattered burst of multiple lasers at once\n\n" - "Unlike the %s, it consumes %s ammo for each laser shot, meaning that it cannot be used infinitely\n\n" - "The %s works best in close ranges, but the primary fire is also useful in medium ranges\n\n" + "The projectiles it fires are similar to those of the %s.\n\n" + "The secondary fire shoots a randomly scattered burst of multiple lasers at once.\n\n" + "Unlike the %s, it consumes %s ammo for each laser shot, meaning that it cannot be used infinitely.\n\n" + "The %s works best in close ranges, but the primary fire is also useful in medium ranges.\n\n" "A unique aspect of the %s is that the longer the primary fire is held, the more that the lasers will start to spread out. " "This means releasing primary fire every now and then is important to restore accuracy. " - "Also, the %s has less spread when used while crouching"), + "Also, the %s has less spread when used while crouching."), COLORED_NAME(this), COLORED_NAME(WEP_BLASTER), COLORED_NAME(WEP_BLASTER), COLORED_NAME(ITEM_Cells), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/hook.qc b/qcsrc/common/weapons/weapon/hook.qc index ffc66da26f..260ac08ee6 100644 --- a/qcsrc/common/weapons/weapon/hook.qc +++ b/qcsrc/common/weapons/weapon/hook.qc @@ -425,12 +425,12 @@ NET_HANDLE(ENT_CLIENT_HOOK, bool bIsNew) METHOD(Hook, describe, string(Hook this)) { TC(Hook, this); - return sprintf(_("The %s is a unique weapon, firing a chain forwards which pulls you in once it latches onto something\n\n" - "The secondary fire usually drops a gravity bomb that affects enemies, also releasing light a smoke like a flashbang\n\n" - "It usually requires %s ammo to work, consuming it both when initially firing the hook, and after a couple seconds as it reels you in\n\n" + return sprintf(_("The %s is a unique weapon, firing a chain forwards which pulls you in once it latches onto something.\n\n" + "The secondary fire usually drops a gravity bomb that affects enemies, also releasing light a smoke like a flashbang.\n\n" + "It usually requires %s ammo to work, consuming it both when initially firing the hook, and after a couple seconds as it reels you in.\n\n" "The %s allows reaching previously unreachable places on maps and zooming around the map at high speeds, " - "making both surprise ambushes and miraculous escapes possible\n\n" - "It isn't available very often on maps, unless the Grappling Hook mutator is active, in which all players have it on their offhand, used with the ^3+hook^7 bind"), + "making both surprise ambushes and miraculous escapes possible.\n\n" + "It isn't available very often on maps, unless the Grappling Hook mutator is active, in which all players have it on their offhand, used with the ^3+hook^7 bind."), COLORED_NAME(this), COLORED_NAME(ITEM_JetpackFuel), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/machinegun.qc b/qcsrc/common/weapons/weapon/machinegun.qc index 1a223f72ee..ece4efa21e 100644 --- a/qcsrc/common/weapons/weapon/machinegun.qc +++ b/qcsrc/common/weapons/weapon/machinegun.qc @@ -419,11 +419,11 @@ METHOD(MachineGun, wr_impacteffect, void(entity thiswep, entity actor)) METHOD(MachineGun, describe, string(MachineGun this)) { TC(MachineGun, this); - return sprintf(_("The %s quickly fires bullets with a small degree of spread\n\n" - "The secondary fire fires a quick burst of bullets faster than the primary fire and with no spread, but there's a short delay until it can be used again\n\n" - "It consumes %s ammo for each bullet shot, until the whole magazine is emptied\n\n" + return sprintf(_("The %s quickly fires bullets with a small degree of spread.\n\n" + "The secondary fire fires a quick burst of bullets faster than the primary fire and with no spread, but there's a short delay until it can be used again.\n\n" + "It consumes %s ammo for each bullet shot, until the whole magazine is emptied.\n\n" "The %s can be used in a lot of situations, and it works particularly well at long ranges since the bullets pierce the sky instantaneously. " - "Since the secondary fire has no spread, it's the better option when firing over a long range"), + "Since the secondary fire has no spread, it's the better option when firing over a long range."), COLORED_NAME(this), COLORED_NAME(ITEM_Bullets), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/minelayer.qc b/qcsrc/common/weapons/weapon/minelayer.qc index ad6408457a..98a1f674fc 100644 --- a/qcsrc/common/weapons/weapon/minelayer.qc +++ b/qcsrc/common/weapons/weapon/minelayer.qc @@ -519,11 +519,11 @@ METHOD(MineLayer, describe, string(MineLayer this)) { TC(MineLayer, this); return sprintf(_("The %s places mines on the ground when fired, which detonate and damage enemies if stepped on. " - "Only a couple mines can be placed at any time, and after several seconds they will self-detonate\n\n" - "The secondary fire instantaneously detonates any mines fired by the primary fire, first waiting until you're far enough away\n\n" - "It consumes %s ammo for each mine laid\n\n" + "Only a couple mines can be placed at any time, and after several seconds they will self-detonate.\n\n" + "The secondary fire instantaneously detonates any mines fired by the primary fire, first waiting until you're far enough away.\n\n" + "It consumes %s ammo for each mine laid.\n\n" "The mines are not launched very far before they hit the ground, so the %s isn't very effective at medium to long ranges. " - "It is often used to protect important areas of the map such as the flag in Capture The Flag, control points in Onslaught, or checkpoints in Assault"), + "It is often used to protect important areas of the map such as the flag in Capture The Flag, control points in Onslaught, or checkpoints in Assault."), COLORED_NAME(this), COLORED_NAME(ITEM_Rockets), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/mortar.qc b/qcsrc/common/weapons/weapon/mortar.qc index 5497265e21..3ff9d799b1 100644 --- a/qcsrc/common/weapons/weapon/mortar.qc +++ b/qcsrc/common/weapons/weapon/mortar.qc @@ -378,11 +378,11 @@ METHOD(Mortar, wr_impacteffect, void(entity thiswep, entity actor)) METHOD(Mortar, describe, string(Mortar this)) { TC(Mortar, this); - return sprintf(_("The %s launches a grenade that explodes immediately on impact, dealing a medium amount of splash damage\n\n" - "The secondary fire shoots a similar grenade that explodes shortly after bouncing\n\n" - "It consumes %s ammo for every grenade launched\n\n" + return sprintf(_("The %s launches a grenade that explodes immediately on impact, dealing a medium amount of splash damage.\n\n" + "The secondary fire shoots a similar grenade that explodes shortly after bouncing.\n\n" + "It consumes %s ammo for every grenade launched.\n\n" "The %s works best at close to medium ranges, but it's quite tricky to hit an enemy if they're airborne. " - "Since the secondary fire grenade bounces before exploding, it can be bounced against walls to damage enemies lurking around a corner"), + "Since the secondary fire grenade bounces before exploding, it can be bounced against walls to damage enemies lurking around a corner."), COLORED_NAME(this), COLORED_NAME(ITEM_Rockets), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/porto.qc b/qcsrc/common/weapons/weapon/porto.qc index d9e894e005..afd264e1b6 100644 --- a/qcsrc/common/weapons/weapon/porto.qc +++ b/qcsrc/common/weapons/weapon/porto.qc @@ -430,11 +430,11 @@ METHOD(PortoLaunch, wr_impacteffect, void(entity this, entity actor)) { METHOD(PortoLaunch, describe, string(PortoLaunch this)) { TC(PortoLaunch, this); - return sprintf(_("The %s is a unique gun that creates one-way portals between flat surfaces on the map, that immediately teleport players and projectiles\n\n" - "The secondary fire is used to shoot the out-portal, while the primary fire shoots the in-portal\n\n" - "It doesn't require ammo, but it is destroyed after some time\n\n" - "The portals will close either after the player who shot them dies or after some time period" - "The %s isn't often placed on maps, but if used well it can make for some interesting gameplay"), + return sprintf(_("The %s is a unique gun that creates one-way portals between flat surfaces on the map, that immediately teleport players and projectiles.\n\n" + "The secondary fire is used to shoot the out-portal, while the primary fire shoots the in-portal.\n\n" + "It doesn't require ammo, but it is destroyed after some time.\n\n" + "The portals will close either after the player who shot them dies or after some time period.\n\n" + "The %s isn't often placed on maps, but if used well it can make for some interesting gameplay."), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/rifle.qc b/qcsrc/common/weapons/weapon/rifle.qc index 8ace94a30a..760319cd19 100644 --- a/qcsrc/common/weapons/weapon/rifle.qc +++ b/qcsrc/common/weapons/weapon/rifle.qc @@ -266,12 +266,12 @@ METHOD(Rifle, wr_zoomdir, bool(entity thiswep)) METHOD(Rifle, describe, string(Rifle this)) { TC(Rifle, this); - return sprintf(_("The %s fires bullets that traverse the map instantaneously and deal a significant chunk of damage on impact\n\n" - "The secondary fire shoots a few less powerful bullets at once with a bit of scatter\n\n" - "It consumes %s ammo for each bullet shot\n\n" + return sprintf(_("The %s fires bullets that traverse the map instantaneously and deal a significant chunk of damage on impact.\n\n" + "The secondary fire shoots a few less powerful bullets at once with a bit of scatter.\n\n" + "It consumes %s ammo for each bullet shot.\n\n" "Unlike the %s, the secondary fire doesn't zoom, so the ^3+zoom^7 bind needs to be used manually with the %s. " - "Also, it needs to be reloaded after its magazine is emptied\n\n" - "Similar to the %s, the %s can be used at any range, but it stands out at long ranges"), + "Also, it needs to be reloaded after its magazine is emptied.\n\n" + "Similar to the %s, the %s can be used at any range, but it stands out at long ranges."), COLORED_NAME(this), COLORED_NAME(ITEM_Bullets), COLORED_NAME(WEP_VORTEX), COLORED_NAME(this), COLORED_NAME(WEP_VORTEX), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/seeker.qc b/qcsrc/common/weapons/weapon/seeker.qc index 76e8f9c1ed..52d5928c1c 100644 --- a/qcsrc/common/weapons/weapon/seeker.qc +++ b/qcsrc/common/weapons/weapon/seeker.qc @@ -672,11 +672,11 @@ METHOD(Seeker, describe, string(Seeker this)) { TC(Seeker, this); return sprintf(_("The %s is a unique weapon, firing a \"tag\" which then launches a few homing missiles if it collides with a player. " - "The homing isn't perfect, so sometimes the missiles can hit an object or a corner\n\n" - "The secondary fire launches a rapid barrage of scattered explosives that travel only a short distance\n\n" - "It consumes %s ammo, even when the tag doesn't land\n\n" + "The homing isn't perfect, so sometimes the missiles can hit an object or a corner.\n\n" + "The secondary fire launches a rapid barrage of scattered explosives that travel only a short distance.\n\n" + "It consumes %s ammo, even when the tag doesn't land.\n\n" "The %s primary fire deals quite a lot of damage when a tag lands, although it requires skill to aim effectively. " - "The secondary fire is only useful in close range combat, and sometimes the explosives can damage yourself too"), + "The secondary fire is only useful in close range combat, and sometimes the explosives can damage yourself too."), COLORED_NAME(this), COLORED_NAME(ITEM_Rockets), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/shotgun.qc b/qcsrc/common/weapons/weapon/shotgun.qc index 4d183f5519..429d47b726 100644 --- a/qcsrc/common/weapons/weapon/shotgun.qc +++ b/qcsrc/common/weapons/weapon/shotgun.qc @@ -391,11 +391,11 @@ METHOD(Shotgun, wr_impacteffect, void(entity thiswep, entity actor)) METHOD(Shotgun, describe, string(Shotgun this)) { TC(Shotgun, this); - return sprintf(_("The %s is one of the two main default weapons, firing a single shotgun round which spreads into multiple pellets upon exiting the barrel\n\n" + return sprintf(_("The %s is one of the two main default weapons, firing a single shotgun round which spreads into multiple pellets upon exiting the barrel.\n\n" "The secondary fire swings the %s, slapping players close enough with the head of the weapon. " - "Since the slap takes a moment to land, timing this well is difficult\n\n" - "The primary fire consumes %s ammo, although if you spawn in with the %s you will already have some\n\n" - "The %s's damage drops off quickly as the range increases, so it is only useful for close combat or sometimes medium range combat"), + "Since the slap takes a moment to land, timing this well is difficult.\n\n" + "The primary fire consumes %s ammo, although if you spawn in with the %s you will already have some.\n\n" + "The %s's damage drops off quickly as the range increases, so it is only useful for close combat or sometimes medium range combat."), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(ITEM_Shells), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/tuba.qc b/qcsrc/common/weapons/weapon/tuba.qc index 98b2d8c2a6..8a322c1181 100644 --- a/qcsrc/common/weapons/weapon/tuba.qc +++ b/qcsrc/common/weapons/weapon/tuba.qc @@ -598,12 +598,12 @@ PRECACHE(Tuba) METHOD(Tuba, describe, string(Tuba this)) { TC(Tuba, this); - return sprintf(_("The %s is unique weapon that makes the ears of nearby enemies bleed by playing awful sounds, also slightly knocking them back\n\n" - "The secondary fire works the same way, playing a higher pitch\n\n" - "The only ammo it needs to operate is the breath from your lungs\n\n" - "Since your enemies need to be close by to hear your awful music, the %s is only effective at very close ranges\n\n" + return sprintf(_("The %s is unique weapon that makes the ears of nearby enemies bleed by playing awful sounds, also slightly knocking them back.\n\n" + "The secondary fire works the same way, playing a higher pitch.\n\n" + "The only ammo it needs to operate is the breath from your lungs.\n\n" + "Since your enemies need to be close by to hear your awful music, the %s is only effective at very close ranges.\n\n" "The pitch the %s plays depends on the movement keys pressed. " - "Reloading the weapon switches its model and notes played"), + "Reloading the weapon switches its model and notes played."), COLORED_NAME(this), COLORED_NAME(this), COLORED_NAME(this)); } diff --git a/qcsrc/common/weapons/weapon/vaporizer.qc b/qcsrc/common/weapons/weapon/vaporizer.qc index 351cf13fbc..c1f3f8f7bc 100644 --- a/qcsrc/common/weapons/weapon/vaporizer.qc +++ b/qcsrc/common/weapons/weapon/vaporizer.qc @@ -415,10 +415,10 @@ METHOD(Vaporizer, describe, string(Vaporizer this)) { TC(Vaporizer, this); return sprintf(_("The %s is unique weapon, firing a deadly beam of energy dealing a huge amount of damage. " - "In InstaGib, the beam has the ability to instantly kill enemies with a single shot, unless they have an %s\n\n" - "The secondary fire fires a laser similar to that fired by the %s, with very strong knockback\n\n" - "It is a superweapon, so isn't often found in game, except in InstaGib where all players spawn with it\n\n" - "It consumes some %s ammo with each shot"), + "In InstaGib, the beam has the ability to instantly kill enemies with a single shot, unless they have an %s.\n\n" + "The secondary fire fires a laser similar to that fired by the %s, with very strong knockback.\n\n" + "It is a superweapon, so isn't often found in game, except in InstaGib where all players spawn with it.\n\n" + "It consumes some %s ammo with each shot."), COLORED_NAME(this), COLORED_NAME(ITEM_ExtraLife), COLORED_NAME(WEP_BLASTER), COLORED_NAME(ITEM_Cells)); } diff --git a/qcsrc/common/weapons/weapon/vortex.qc b/qcsrc/common/weapons/weapon/vortex.qc index 87b44ad2a7..dd9d49b827 100644 --- a/qcsrc/common/weapons/weapon/vortex.qc +++ b/qcsrc/common/weapons/weapon/vortex.qc @@ -380,12 +380,12 @@ METHOD(Vortex, wr_zoomdir, bool(entity thiswep)) METHOD(Vortex, describe, string(Vortex this)) { TC(Vortex, this); - return sprintf(_("The %s fires harmful beams of energy that traverse the map instantaneously and deal a significant chunk of damage on impact\n\n" - "The secondary fire zooms in when held, allowing for ease of aiming\n\n" - "It consumes %s ammo for each bullet shot\n\n" + return sprintf(_("The %s fires harmful beams of energy that traverse the map instantaneously and deal a significant chunk of damage on impact.\n\n" + "The secondary fire zooms in when held, allowing for ease of aiming.\n\n" + "It consumes %s ammo for each bullet shot.\n\n" "Unlike the %s, the %s doesn't need to be reloaded manually, although you have to wait a couple seconds between shots. " - "Uniquely, it can be fired slightly before it finishes completely reloading, albeit with the tradeoff of dealing slightly less damage\n\n" - "Similar to the %s, the %s can be used at any range, but it stands out at long ranges"), + "Uniquely, it can be fired slightly before it finishes completely reloading, albeit with the tradeoff of dealing slightly less damage.\n\n" + "Similar to the %s, the %s can be used at any range, but it stands out at long ranges."), COLORED_NAME(this), COLORED_NAME(ITEM_Cells), COLORED_NAME(WEP_RIFLE), COLORED_NAME(this), COLORED_NAME(WEP_RIFLE), COLORED_NAME(this)); } diff --git a/qcsrc/menu/xonotic/guide/pages.qc b/qcsrc/menu/xonotic/guide/pages.qc index 18c691dd64..55bfc8a49d 100644 --- a/qcsrc/menu/xonotic/guide/pages.qc +++ b/qcsrc/menu/xonotic/guide/pages.qc @@ -11,40 +11,40 @@ REGISTER_INTRODUCTION_PAGE(0, _("About this guide"), "gametype_dm") { this.m_description = _("Welcome to Xonotic, the free and fast arena shooter!\n\n" "Please note that this guide describes the default game behavior with vanilla settings. " - "Xonotic is highly customizable and there are tons of servers out there that run with lightly or highly modified settings\n\n" - "You can usually find out which settings are modified by issuing ^3cvar_changes^7 in console after connecting to a server"); + "Xonotic is highly customizable and there are tons of servers out there that run with lightly or highly modified settings.\n\n" + "You can usually find out which settings are modified by issuing ^3cvar_changes^7 in console after connecting to a server."); } REGISTER_INTRODUCTION_PAGE(1, _("Community"), "gametype_dm") { this.m_description = strzone(sprintf(_("Xonotic stands out for its friendly, mature, and welcoming player community, and many long-term players argue that this is probably one of the best things about Xonotic. " - "If you approach other players friendly and respectfully, this will be recognized, while acting toxic on the other hand will not make your life easier on the servers\n\n" + "If you approach other players friendly and respectfully, this will be recognized, while acting toxic on the other hand will not make your life easier on the servers.\n\n" "The best way to get in touch with the community is to just start playing online and use the in-game chat. " - "However, you can also connect to the official communication channels (^5%s^7 on Matrix, ^5%s^7 on QuakeNet IRC), and of course the official forum"), + "However, you can also connect to the official communication channels (^5%s^7 on Matrix, ^5%s^7 on QuakeNet IRC), and of course the official forum."), "#main:xonotic.org", "#xonotic")); } REGISTER_INTRODUCTION_PAGE(2, _("Acquiring Skills"), "gametype_dm") { this.m_description = _("The skill gap between new and experienced players is often immense. However, this is mostly because experienced players have learned how to make use of the game mechanics. " "If you see experienced players doing tricks you don't understand, don't hesitate to ask. " - "In most cases, polite questions receive an answer, from anyone on the server if not from the experienced player themselves\n\n" + "In most cases, polite questions receive an answer, from anyone on the server if not from the experienced player themselves.\n\n" "Another way to learn is to spectate experienced players. " "Observe which weapons they combo and the movement techniques they make use of. " - "Also look at which weapons they choose depending on the gameplay situation, for example in close combat, mid-range battles, or against groups of opponents\n\n" - "The learning curve is very steep. That said, understanding how the game works will enable you to speed around the map and apply effective weapon combos in no time"); + "Also look at which weapons they choose depending on the gameplay situation, for example in close combat, mid-range battles, or against groups of opponents.\n\n" + "The learning curve is very steep. That said, understanding how the game works will enable you to speed around the map and apply effective weapon combos in no time."); } REGISTER_INTRODUCTION_PAGE(3, _("XonStat"), "gametype_dm") { this.m_description = strzone(sprintf(_("XonStat is the integrated player statistics application for Xonotic. " - "It stores vital stats like your K:D ratio, weapon damage and accuracy, and scoreboards from past games\n\n" - "Tracking is completely opt-in, and no login is required\n\n" - "Some of the statistics are available in-game on your player profile, while the rest are accessible at ^5%s^7"), + "It stores vital stats like your K:D ratio, weapon damage and accuracy, and scoreboards from past games.\n\n" + "Tracking is completely opt-in, and no login is required.\n\n" + "Some of the statistics are available in-game on your player profile, while the rest are accessible at ^5%s^7."), "stats.xonotic.org")); } REGISTER_MOVEMENT_PAGE(0, _("Movement Importance"), "gametype_inv") { this.m_description = _("Xonotic is a very fast-paced arena shooter. Fast-paced does not only relate to reaction times but also to movement speed. " - "That means mastering movement skills is an essential part of Xonotic gameplay and must not be underestimated\n\n" + "That means mastering movement skills is an essential part of Xonotic gameplay and must not be underestimated.\n\n" "For a new player using default physics, the most important tricks to learn are:" "\n Bunny Hopping" "\n Strafe Turning" @@ -55,78 +55,78 @@ REGISTER_MOVEMENT_PAGE(0, _("Movement Importance"), "gametype_inv") } REGISTER_MOVEMENT_PAGE(1, _("Bunny Hopping"), "gametype_inv") { - this.m_description = _("\"Bunny hopping\" (\"bhopping\") is a technique known also from other arena shooters\n\n" + this.m_description = _("\"Bunny hopping\" (\"bhopping\") is a technique known also from other arena shooters.\n\n" "Due to air control, you can accelerate while in the air far beyond the maximum ground movement speed. " "In order to avoid ground friction you can constantly hop, so that ground contact won't slow you down, by simply keeping the ^3+jump^7 button pressed. " - "This allows you to get around the map much faster than if you would just walk\n\n" - "Therefore, keeping ^3+jump^7 held while moving quickly is one of the most essential movement strategies, used by all experienced players\n\n" + "This allows you to get around the map much faster than if you would just walk.\n\n" + "Therefore, keeping ^3+jump^7 held while moving quickly is one of the most essential movement strategies, used by all experienced players.\n\n" "In vanilla settings, the speed you can reach by bunny hopping is capped at 900. " - "CTS/DeFRaG servers usually run with different CPMA-like physics that remove this capping"); + "CTS/DeFRaG servers usually run with different CPMA-like physics that remove this capping."); } REGISTER_MOVEMENT_PAGE(2, _("Strafe Turning"), "gametype_inv") { this.m_description = strzone(sprintf(_("Bunny hopping around corners requires \"strafe turning\" or you will loose a lot of speed (or simply not be able to make the turn). " - "Strafe turning is a method used to quickly change the direction you're traveling while mid-air, without losing speed\n\n" + "Strafe turning is a method used to quickly change the direction you're traveling while mid-air, without losing speed.\n\n" "While bunny hopping, first release the ^3+forward^7 movement key, then press the strafe key into the turn direction (^3+moveleft^7 or ^3+moveright^7), then start moving the mouse smoothly into the turn direction. " - "As always, during the entire strafe turn keep the jump button held\n\n" - "Note that if you press the strafe key before releasing the forward key, you will suffer a speed penalty\n\n" - "If you do it right, you will even continue to accelerate in strafe turns\n\n" - "For an illustration of this technique, see ^5%s^7"), + "As always, during the entire strafe turn keep the jump button held.\n\n" + "Note that if you press the strafe key before releasing the forward key, you will suffer a speed penalty.\n\n" + "If you do it right, you will even continue to accelerate in strafe turns.\n\n" + "For an illustration of this technique, see ^5%s^7."), "xonotic.org/guide")); } REGISTER_MOVEMENT_PAGE(3, _("Blaster Jumping"), "gametype_inv") { this.m_description = strzone(sprintf(_("In most situations, the %s is more a movement tool than a weapon. " "That's why many players will often have single digit accuracy for the %s. " - "It is instead especially useful to make high jumps\n\n" + "It is instead especially useful to make high jumps.\n\n" "To do a \"laser jump,\" simply fire the %s at your own feet and jump. " - "Experiment a bit with the timing of firing the %s and jumping to get a feeling about which timing will get you how high"), + "Experiment a bit with the timing of firing the %s and jumping to get a feeling about which timing will get you how high."), COLORED_NAME(WEP_BLASTER), COLORED_NAME(WEP_BLASTER), COLORED_NAME(WEP_BLASTER), COLORED_NAME(WEP_BLASTER))); } REGISTER_MOVEMENT_PAGE(4, _("Wall Blastering"), "gametype_inv") { this.m_description = strzone(sprintf(_("If you don't fire the %s at the floor but instead against a wall next to you, you can get significant horizontal speed. " - "You can do that to pick up speed off the stand or even when passing a wall while already bunny hopping\n\n" + "You can do that to pick up speed off the stand or even when passing a wall while already bunny hopping.\n\n" "To use this technique, start a bunny hop. Right after jumping, flick back with your mouse at about 8 o'clock if the wall is to your left (or 4 o'clock if the wall is to your right), aim at the level of your head, and fire the %s. " - "Immediately flick back to your movement direction and continue to bunny hop\n\n" + "Immediately flick back to your movement direction and continue to bunny hop.\n\n" "In order to waste as little speed as possible while flicking back, switch to strafe key for the duration of the flick. " - "Use the strafe right key if the wall is to your left, and the strafe left key if the wall is to your right\n\n" - "You'll find an illustration of this technique on ^5%s^7"), + "Use the strafe right key if the wall is to your left, and the strafe left key if the wall is to your right.\n\n" + "You'll find an illustration of this technique on ^5%s^7."), COLORED_NAME(WEP_BLASTER), COLORED_NAME(WEP_BLASTER), "xonotic.org/guide")); } REGISTER_MOVEMENT_PAGE(5, _("Rocket Flying"), "gametype_inv") { this.m_description = strzone(sprintf(_("The %s can be used just like the %s for movement, however it inflicts way more damage to the player. " - "In game modes without self damage however it is a very versatile movement tool\n\n" - "You can also fire a rocket underneath yourself and immediately detonate it. The explosion will push you upwards a little bit, and can prolong a jump\n\n" - "Note that this strategy only really works if the %s mutator is enabled"), + "In game modes without self damage however it is a very versatile movement tool.\n\n" + "You can also fire a rocket underneath yourself and immediately detonate it. The explosion will push you upwards a little bit, and can prolong a jump.\n\n" + "Note that this strategy only really works if the %s mutator is enabled."), COLORED_NAME(WEP_DEVASTATOR), COLORED_NAME(WEP_BLASTER), COLORED_NAME(MUTATOR_rocketflying))); } REGISTER_MOVEMENT_PAGE(6, _("Crylink Running"), "gametype_inv") { - this.m_description = strzone(sprintf(_("The drag force of %s secondary fire can not only break other people's movement, but can also give yourself a significant speed boost\n\n" + this.m_description = strzone(sprintf(_("The drag force of %s secondary fire can not only break other people's movement, but can also give yourself a significant speed boost.\n\n" "To \"crylink run,\" shoot the %s secondary at the floor (or a parallel wall) just in front of you and begin bunny hopping to catapult yourself off the stand into high speed"), COLORED_NAME(WEP_CRYLINK), COLORED_NAME(WEP_CRYLINK))); } REGISTER_MOVEMENT_PAGE(7, _("Crylink Wall Climbing"), "gametype_inv") { this.m_description = strzone(sprintf(_("By shooting the %s secondary against a wall next to you (just above your head), you can climb up walls quickly. " - "This is called \"wall climbing\" with the %s\n\n" - "This is also a good way to save yourself from falling off the map, as it reliably stops your downfall"), + "This is called \"wall climbing\" with the %s.\n\n" + "This is also a good way to save yourself from falling off the map, as it reliably stops your downfall."), COLORED_NAME(WEP_CRYLINK), COLORED_NAME(WEP_CRYLINK))); } REGISTER_MOVEMENT_PAGE(8, _("Ramp Jumping"), "gametype_inv") { - this.m_description = _("Ramps are an important part of Xonotic map design. Any sloped surface that you hit with the right speed and the right angle will give you a significant upwards boost and enable you to reach places that are otherwise accessible only with laser jumps, which cost health and make noise\n\n" - "When doing ramp jumps, it is vital to hit the ramp at a flat angle to receive the upwards boost and not loose too much speed\n\n" - "In order to make a ramp jump, approach a sloped surface (\"ramp\"), jump just before the ramp and keep the ^3+jump^7 button pressed so you jump again once you hit the ramp\n\n" - "The higher the speed you have when you hit the ramp (at the right angle), the stronger the upwards boost. As always, you can gain speed before the ramp by bunny hopping\n\n" - "Note that when trying to make a ramp jump while bunny hopping, it is vital to time your hops carefully so you get the angle right"); + this.m_description = _("Ramps are an important part of Xonotic map design. Any sloped surface that you hit with the right speed and the right angle will give you a significant upwards boost and enable you to reach places that are otherwise accessible only with laser jumps, which cost health and make noise.\n\n" + "When doing ramp jumps, it is vital to hit the ramp at a flat angle to receive the upwards boost and not loose too much speed.\n\n" + "In order to make a ramp jump, approach a sloped surface (\"ramp\"), jump just before the ramp and keep the ^3+jump^7 button pressed so you jump again once you hit the ramp.\n\n" + "The higher the speed you have when you hit the ramp (at the right angle), the stronger the upwards boost. As always, you can gain speed before the ramp by bunny hopping.\n\n" + "Note that when trying to make a ramp jump while bunny hopping, it is vital to time your hops carefully so you get the angle right."); } REGISTER_MOVEMENT_PAGE(9, _("Advanced Movement"), "gametype_inv") { this.m_description = strzone(sprintf(_("Advanced techniques like \"strafe jumping\" (\"strafing\") or \"circle jumping\" (\"CJ\") offer only limited benefits in vanilla gameplay, " - "but are crucial on CTS/DeFRaG servers that use slightly different physics\n\n" - "If you want to master these techniques, be sure to check out ^5%s^7"), + "but are crucial on CTS/DeFRaG servers that use slightly different physics.\n\n" + "If you want to master these techniques, be sure to check out ^5%s^7."), "xdf.gg/guide")); }