Fix any typo you find in my CHANGELOG.md

# Changelog

## April 2, 2023

- Updating the source with local changes pt 2.
    - Update database sql file to accomodate for new monster spawns, maps, items, drop rules, etc.
    - Change and refactor enums.
        - EquipmentLocID changed to ItemLocation.
        - Some constants to the new MsgConnectExRejects.
    - Add new dynamic maps ids to the dynamic ID dictionary in Constants.
    - Add durability lost chance, so each monster attack can lower it by rolling this chance.
    - Improved durability losing logic.
        - Separate logic of durability lose for weapons and armors, code moved to Player class.
    - Add Kylin gem effect, now it increases durability.
    - Add proficiency rate to proficiencies experience earning calculations.
    - Add skill rate to skill experience earning calculations.
    - Change bows and backsword weapon types to their own, instead of wrongly using two-handed and one-handed respectively.
    - Fix Box items wrong space calculation.
    - Add drop rate, a multiplier that affects every drop rate of the game. it works similar to other MMORPG servers.
    - Change socket drop rate to be separated into two rates, since single sockets are more common than double.
    - Change current drop rates to be more faithful to originals, these numbers were based on other sources.
    - Add missing database field DropMoney from Monster table, which controls the rate of money dropped by monsters.
    - Add new way to calculate item drops, the new logic correctly uses the monster database to manage the drops.
        - The gear drop rates now follows a better way for gears and weapons, based on fixed gear chances and drop rules in the database.
        - Add a random chance for items to be of a lower or a higher level, similar to how it works in the original server.
        - Add a chance for items to drop with a different color.
        - Add a new formula to calculate meteors and dragon balls drops, that takes into account the monster level.
            - Meteor drop rate: ((0.00121 * Monster level + 0.07078) * Lucky Time bonus * DROP RATE)
                - Level 1 monster drop rate (1x drop rate, no lucky time): 0.07199% ≈ 1/1390
                - Level 130 monster drop rate (1x drop rate, no lucky time): 0.22808% ≈ 1/438
            - Dragonball drop rate: ((0.00018 * Monster level + 0.00083) * Lucky Time bonus * DROP RATE)
                - Level 1 monster drop rate (1x drop rate, no lucky time): 0.00101% ≈ 1/9900
                - Level 130 monster drop rate (1x drop rate, no lucky time): 0.02423% ≈ 1/4139
        - Add a new formula to calculate how much CP drops from monsters, that takes into account their level and has a minimum.
            - CP drop amount: Floor(Base Monster Level / 13)
                - Level 1-12 CP drop: 0
                - Level 13 CP drop: 1
                - Level 130 CP drop: 10
        - Change the drop item limit of 4 to use the drop rule amount in the database.
        - Change gold drop stacks to be random number between 1 and 6.
    - Add Sky City and Sky Pass:
        - Add Sky Pass monster spawns.
        - Add GodCloud NPC, handles prizes for completing the Sky Pass, giving two alternatives to pick from.
            - 1) 4 meteors.
            - 2) Random chance: (22.22% - 10 meteors, 33.33% - 4 meteors, 22.22% - 1000 silver, 22.22% - 10000 silver)
        - Add Daniel NPC, teleports the player Sky Pass first floor or to GodCloud when a SkyPrizeToken is shown.
        - Add stages guards NPCs, which teleport to the next floor if a Pass Token is shown.
        - Add terminal guards NPCs, which randomly teleport out giving a SkyPrizeToken or to repeat the last floor again.
    - Fix NPCs logic.
        - Advance Zone, Assistant, correcting teleport ID.
        - Advance Zone, MineSupervisor, correcting teleport ID.
        - Phoenix Castle, Soldier, missing inventory space checking.
        - Twin City, GeneralChen, missing inventory space checking.
    - Add Deliver Windbell repeatable quest.
        - Add Shirley NPC, gives a Refined TasselEarring for a Windbell and a JadeFromShirley.
        - Add SoldierLeader NPC, gives a Windbell when a JadeFromShirley is shown.
    - Add Mr.Leisure repeatable quest.
        - Add Mr.Leisure NPC, gives a ToBlacksmith.
        - Add BlacksmithLi NPC, gives an IngredientList and exchange five StoneSpirit and an IngredientList for a Refined SoftShield.
    - Add PK tickets exchange repeatable quest.
        - Add David NPC, exchanges six PKTicket for 6000 silver.
    - Add Deliver Joy letter repeatable quest.
        - Add Joy NPC, gives a Letter.Joy to deliver and exchanges a Bow.Mike for an Elite LeopardCoat.
        - Add Mike NPC, exchanges a Bow.Mike for a Letter.Joy, two Normal FuryGems, a Normal DragonGem and five Euxenite ores.
    - Add Army token repeatable quest.
        - Add special bandit enemies spawns, they drop an ArmyToken by a chance.
        - Add GeneralQing NPC, exchanges an ArmyToken for a Refined PeaceSword.
        - Add FoodCarrier NPC, gives information on where are the bandits.
        - Add BanditHead NPC.
    - Add Rat fangs repeatable quest.
        - Add special rat enemies spawns, they drop an RatFang by a chance.
        - Add OldmanTang NPC, exchange a RatFang for a random reward.
            - 1% chance - Elite PurpleBag or Elite BrassHeavyRing.
            - 10% chance - Unique PurpleBag or Unique BrassHeavyRing.
            - 89% chance - Refined PurpleBag or Refined BrassHeavyRing.

## March 24, 2023

- Updating the source with local changes. [9503b815e6dc92c52b628cf8f7b6cc6dd54146c3][0]
    - Add CHANGELOG.md.
    - Add .editorconfig.
    - Update solution to Visual Studio 2019.
    - Change the coding guideline.
        - Force brackets, and linebreaks.
        - Remove var and use explicit types.
        - Return statements in their own line.
        - Remove wrong spaces and unused linebreaks.
        - Each assignment and declaration in its own line.
        - Follow Microsoft naming conventions for variables.
    - Refactor entire project.
    - Add throw exception to databases repositories if needed.
    - Add missing server/client messages of item actions.
        - Durability changes.
        - Repair all.
        - Drop equipment.
        - Reload and combine arrows.
        - Update arrow count.
        - Particle effect.
        - Ping.
        - Enchant.
    - Add server/client packet types.
    - Add new constants to previous fixed numbers.
        - Sitting HP recovery percentage and intervals.
        - Sittig and standing Stamina recovery percentage and intervals.
        - XP recovery percentage and intervals.
        - PK decreasing amount and intervals.
        - Mining intervals.
        - Repair costs modifiers.
        - Damage reduction per reborn.
    - Add new GM commands.
        - Add durability to /item command.
        - Add /drop command.
        - Add /where command.
        - Add /stringaction command.
    - Add separated logic of map IDs and dynamic map IDs to map manager.
        - A Map is the base map, represents the first time a map appears in the database.
        - A Dynamic map is a derived map from a base map, it has the same map graphics with differences like monsters, portals, NPCs, etc.
    - Add new way of spawn monsters to monster class.
        - The way it is now done, is by dividing the spawn rectangle into triangles, and then calculate the spawn point inside them.
    - Add dropping of socket items to drop manager.
    - Add dropping of blessed items to monster class.
    - Add new drops chances.
        - Change drop chances based on other codes and guides.
        - Blessed items chances.
    - Add durability drop of weapons and gears.
    - Add repairing items using meteors.
    - Add new player actions.
        - Add dropping money.
        - Add reloading and combine arrows from players inventories, when the amount is lower than 3.
    - Add missing dance actions, Dance2 to Dance8.
    - Add cyclone to client status.
    - Add reborn summoning skills.
        - Add Mighty Tao NPC, teaches summoning skills to reborn players.
        - Add combat logic between pets and monsters to combat manager.
    - Add summoned pet player owner to monster class.
    - Add second reborn, but still missing its quest.
        - Add second reborn NPC, Alex.
        - Add second reborn logic, downlevel of items and skills learning.
        - Add second reborn aura.
        - Add second reborn skill, Bless.
        - Add second reborn rewards.
    - Add second reborn task type to track characters doing the second reborn quest.
    - Add "can second reborn" property to player class, which checks if the player has completed the second reborn quest.
    - Add second reborn damage reduction to combat calculations.
    - Add learn reborn skills based on reborn path to player class.
    - Add support to dynamic maps to player class.
    - Add new method to player class that checks if player has items in a range of IDs.
    - Add new method to player class that deletes an item in a range of IDs.
    - Add logic to reload and combine arrows to player class, only reload done.
    - Fix stamina shouldn't be gained when flying.
    - Add item type descriptions enum based on database item descriptions.
    - Add new items.
        - Skill books.
            - Dance2
            - Dance3
            - Dance4
            - Dance5
            - Dance6
            - Dance7
            - Dance8
        - Gate scrolls.
            - WindSpell, Maple Forest.
            - StoneCityGate
        - Laboratory boxes.
            - MoonBox.
            - AncestorBox.
            - SunBox.
            - WaningMoonBox.
            - StarBox.
            - CloudBox.
        - ExemptionToken, to bypass second reborn quest.
    - Add lottery and lottery NPC, LadyLuck.
    - Add Dis City quest NPC, Solar Saint.
    - Add item socketing through DragonBalls or ToughDrills/StarDrills by ArtisanOu NPC.
    - Add change player map and move methods to base NPC class INpc.
    - Change in NPCs logic.
        - Change GodlyArtisan to its original logic: Repair maximum durability.
        - Change CPAdmin to its original CP values: 215 CP for a DragonBall and 2150 CP for a DBScroll.
        - Move previous Alex NPC logic to the original first reborn NPC, Eternity, and added missing reward.
            - Add Suicide bow (Negates fly because of shield buff) as archer reward.
        - Change Guild Director to set for the new options to be added.
        - Welcomer NPC has most of its dialogue removed.
    - Add Phoenix Castle SpaceMark NPC, sells WindSpell to water taos.
    - Add Advanced Zone.
        - Add Advanced Zone maps, using dynamic map IDs.
        - Add new Advanced Zone NPCs.
            - Assistant.
            - MineSupervisor.
            - Grandpa.
            - Boatman.
            - OldExplorer.
            - Stone City Warehouse.
        - Add Advanced Zone monster spawns.
    - Add Laboratory.
        - Add lab monster spawns.
        - Add diamond drops from lab monsters: SunDiamonds, MoonDiamonds, StarDiamonds and CloudDiamonds.
        - Add diamond exchange.
            - 17 SunDiamonds - 2 Meteors
            - 17 MoonDiamonds - 4 Meteors
            - 17 StarDiamonds - Random Normal Gem (Rainbow, Phoenix, Dragon, Moon, Fury)
            - 17 CloudDiamonds - AncestorBox
        - Add lab NPCs.
            - Simon, lab teleporter and diamonds exchange.
            - Old Explorer 1, teleports to Level 2 for a SkyToken.
            - Old Explorer 2, teleports to Level 3 for a EarthToken.
            - Old Explorer 3, teleports to Level 4 for a SoulToken.
    - Add MoonBox quest.
        - Add MoonBox quest maps, using dynamic map IDs.
        - Add MoonBox quest teleport NPC, Fortuneteller.
        - Add MoonBox quest monster spawns.
    - Add deliver general letter repeatable quest.
        - Add GeneralChen NPC, gives Recommendation or a Unique Broadsword if FmGeneralWu is shown.
        - Add Soldier NPC, gives OfficialLetter if Recommendation is shown.
        - Add GeneralWu NPC, gives FmGeneralWu if both Recommendation and OfficialLetter are shown and changes position after each deliver.
    - Add alchemy repeatable quest.
        - Add Alchemist NPC.
            - Buys BrilliantStone for 2000 silver.
            - Buys three Euxenite ores for 3000 silver. 
            - Grind it to GlitterPowder for 800 silver.
            - Exchange three gold ores rate 10 for a Normal Kylin Gem.
            - Exchange three gold ores rate 3-10 for a Refined AmbergrisBag.

## October 11, 2016

- Add original source code from Pro4never and others. [1f0274e0f405b5469ee7749dd5f1070511d59949][3]
- Moved DB (SQL files) outside of project folder. [f86f401f67426e04826e240c9851b627e7f06ff1][4]
- Updating the source with my changes. [127b9815f8f894b7516d79685e8f87519bd665ef][5]
    - Add PercentSuccess method.
    - Change Constants are organized.
    - Add ItemEffects.
    - Add combat improvements, attacking in range, following the target, etc.
    - Add monsters AI improvements, and three new movements for the monsters: idle, encircle an obstacle and running away.
    - Add support for passive skills and four passive skills: Reflect, Poison, HealBacksword and ManaBacksword.
    - Add missing items definition: HairDye, MoonBox, etc.
    - Add drop manager item generation by ID.
    - Add chance to drop CP from every kill.
    - Add status effects on monsters, like poison.
    - Add NPCs: GodlyArtisan, CPAdmin, Alex (first reborn), Barber.
    - Fix NPCs: UnknownMan, JewelerLau, Equipment Master, Promotions NPCs, 
    - Add reborn weapons.
    - Add sit to recover a percentage of HP.
    - Add reborning and moonboxes, give a random garment as reward.
    - Change rates are lowered by default,
- Change my own Spanish comments to English. [40507b6e7e9bc61c75a9fcfb8d552653216dd35b][6]

## October 10, 2016

- Project creation [2839968934ef69a28c9d487fb0fd4f332d0c0efd][1]
- Updated README.md [885c966237966d1116b03a6d060c169fcbdfe8d3][2]

[0]: https://github.com/luckymouse0/Redux-Conquer-Online-Server/commits/
[1]: https://github.com/luckymouse0/Redux-Conquer-Online-Server/commit/2839968934ef69a28c9d487fb0fd4f332d0c0efd
[2]: https://github.com/luckymouse0/Redux-Conquer-Online-Server/commit/885c966237966d1116b03a6d060c169fcbdfe8d3
[3]: https://github.com/luckymouse0/Redux-Conquer-Online-Server/commit/1f0274e0f405b5469ee7749dd5f1070511d59949
[4]: https://github.com/luckymouse0/Redux-Conquer-Online-Server/commit/f86f401f67426e04826e240c9851b627e7f06ff1
[5]: https://github.com/luckymouse0/Redux-Conquer-Online-Server/commit/127b9815f8f894b7516d79685e8f87519bd665ef
[6]: https://github.com/luckymouse0/Redux-Conquer-Online-Server/commit/40507b6e7e9bc61c75a9fcfb8d552653216dd35b