From 030263815868b9337af87f5e3226f79edb2010ed Mon Sep 17 00:00:00 2001 From: standardcombo Date: Tue, 13 Dec 2022 21:43:57 -0800 Subject: [PATCH] v1.0.0 --- Data/Scripts/AmbushExample_README.lua | 2 +- Data/Scripts/AnimControllerDragon.lua | 2 +- Data/Scripts/AnimControllerRaptor.lua | 2 +- Data/Scripts/AnimControllerZombie.lua | 2 +- Data/Scripts/CombatWrapAPI.lua | 2 +- Data/Scripts/CombatWrapNPC.lua | 2 +- Data/Scripts/CombatWrapPlayer.lua | 2 +- Data/Scripts/DamageFeedbackClient.lua | 2 +- Data/Scripts/DamageFeedbackServer.lua | 2 +- .../DestructibleWeaponClient.asset.pbt | 11 ----- Data/Scripts/DestructibleWeaponClient.lua | 46 ------------------ Data/Scripts/DestructibleWeaponServer.lua | 2 +- Data/Scripts/MOBA_Example_README.lua | 5 +- Data/Scripts/NPCAIClient.lua | 2 +- Data/Scripts/NPCAIServer.lua | 2 +- Data/Scripts/NPCAttackClient.lua | 2 +- Data/Scripts/NPCAttackServer.lua | 2 +- Data/Scripts/NPCCampBehavior_AlwaysSpawn.lua | 2 +- .../Scripts/NPCCampBehavior_PeriodicSpawn.lua | 2 +- .../NPCCampBehavior_PlayerProximity.lua | 2 +- Data/Scripts/NPCHeadshot.lua | 2 +- .../NPCHealthBarDataProviderClient.lua | 2 +- Data/Scripts/NPCManager.lua | 2 +- Data/Scripts/NPCSpawner.lua | 2 +- Data/Scripts/NPCWaypoint.lua | 6 +-- Data/Scripts/NPC_KIT_README.lua | 2 +- Data/Scripts/NavMeshZones.lua | 2 +- Data/Scripts/StateBasedAnimController.lua | 2 +- Data/Scripts/WaypointExample_README.lua | 2 +- Release Notes.txt | 48 ++++++++++++++++++- 30 files changed, 76 insertions(+), 90 deletions(-) delete mode 100644 Data/Scripts/DestructibleWeaponClient.asset.pbt delete mode 100644 Data/Scripts/DestructibleWeaponClient.lua diff --git a/Data/Scripts/AmbushExample_README.lua b/Data/Scripts/AmbushExample_README.lua index 3661e79f..89f80bdb 100644 --- a/Data/Scripts/AmbushExample_README.lua +++ b/Data/Scripts/AmbushExample_README.lua @@ -1,6 +1,6 @@ --[[ Ambush Example - v0.13.0 + v1.0 by: standardcombo This example of an enemy camp spawns three enemies when the player enters the camp. diff --git a/Data/Scripts/AnimControllerDragon.lua b/Data/Scripts/AnimControllerDragon.lua index 757e1a2f..2e178bb1 100644 --- a/Data/Scripts/AnimControllerDragon.lua +++ b/Data/Scripts/AnimControllerDragon.lua @@ -1,6 +1,6 @@ --[[ Animation Controller - Dragon - v1.2.0 + v1.2 by: standardcombo, blackdheart Controls the animations for an NPC based on the Dragon Animated Mesh. diff --git a/Data/Scripts/AnimControllerRaptor.lua b/Data/Scripts/AnimControllerRaptor.lua index 5216a3b5..f9ee03a1 100644 --- a/Data/Scripts/AnimControllerRaptor.lua +++ b/Data/Scripts/AnimControllerRaptor.lua @@ -1,6 +1,6 @@ --[[ Animation Controller - Raptor - v1.3.0 + v1.3 by: standardcombo, blackdheart Controls the animations for an NPC based on the Raptor Animated Mesh. diff --git a/Data/Scripts/AnimControllerZombie.lua b/Data/Scripts/AnimControllerZombie.lua index b53abb00..38c31ec0 100644 --- a/Data/Scripts/AnimControllerZombie.lua +++ b/Data/Scripts/AnimControllerZombie.lua @@ -1,6 +1,6 @@ --[[ Animation Controller - Zombie - v1.2.0 + v1.2 by: standardcombo Controls the animations for a humanoid NPC with Animated Mesh. diff --git a/Data/Scripts/CombatWrapAPI.lua b/Data/Scripts/CombatWrapAPI.lua index e91173f3..0c6aab80 100644 --- a/Data/Scripts/CombatWrapAPI.lua +++ b/Data/Scripts/CombatWrapAPI.lua @@ -1,6 +1,6 @@ --[[ Combat Wrap API - v0.14.0 + v1.0.0 by: standardcombo, WaveParadigm Identifies the type of object and wraps it with a common interface for combat-related functions. diff --git a/Data/Scripts/CombatWrapNPC.lua b/Data/Scripts/CombatWrapNPC.lua index 9f50d58f..000bba0c 100644 --- a/Data/Scripts/CombatWrapNPC.lua +++ b/Data/Scripts/CombatWrapNPC.lua @@ -1,6 +1,6 @@ --[[ Combat Wrap - NPC - v0.15.0 + v1.0.0 by: standardcombo, WaveParadigm Provides an interface of combat functions that operate on a non-Player object. diff --git a/Data/Scripts/CombatWrapPlayer.lua b/Data/Scripts/CombatWrapPlayer.lua index c462f581..15c51ca0 100644 --- a/Data/Scripts/CombatWrapPlayer.lua +++ b/Data/Scripts/CombatWrapPlayer.lua @@ -1,6 +1,6 @@ --[[ Combat Wrap - Player - v0.15.0 + v1.0.0 by: standardcombo Provides an interface of combat functions that operate on a Player object. diff --git a/Data/Scripts/DamageFeedbackClient.lua b/Data/Scripts/DamageFeedbackClient.lua index b60b3f67..b16ffb2b 100644 --- a/Data/Scripts/DamageFeedbackClient.lua +++ b/Data/Scripts/DamageFeedbackClient.lua @@ -1,6 +1,6 @@ --[[ Damage Feedback - Client - v1.1.0 + v1.1 by: Wave Paradigm, standardcombo By default player damaged is server-only. diff --git a/Data/Scripts/DamageFeedbackServer.lua b/Data/Scripts/DamageFeedbackServer.lua index 7d238219..1f17285f 100644 --- a/Data/Scripts/DamageFeedbackServer.lua +++ b/Data/Scripts/DamageFeedbackServer.lua @@ -1,6 +1,6 @@ --[[ Damage Feedback - Server - v1.2.0 + v1.2 by: Wave Paradigm, standardcombo By default player damaged is server-only. diff --git a/Data/Scripts/DestructibleWeaponClient.asset.pbt b/Data/Scripts/DestructibleWeaponClient.asset.pbt deleted file mode 100644 index 6f1ca3a3..00000000 --- a/Data/Scripts/DestructibleWeaponClient.asset.pbt +++ /dev/null @@ -1,11 +0,0 @@ -Assets { - Id: 1745020032661794594 - Name: "DestructibleWeaponClient" - PlatformAssetType: 3 - TextAsset { - CustomParameters { - } - } - SerializationVersion: 121 - VirtualFolderPath: "NPC Kit" -} diff --git a/Data/Scripts/DestructibleWeaponClient.lua b/Data/Scripts/DestructibleWeaponClient.lua deleted file mode 100644 index d54bdf26..00000000 --- a/Data/Scripts/DestructibleWeaponClient.lua +++ /dev/null @@ -1,46 +0,0 @@ ---[[ - DestructibleWeapon - Client - v0.13.0 - by: standardcombo, Chris C. - - Place this script in a Weapon's client-context to show damage feedback - when using the Destructible Weapon system. ---]] - -local WEAPON = script:FindAncestorByType("Equipment") - -function OnShowDamageFeedback(amount, position) - local player = Game.GetLocalPlayer() - --- local templateRoot = script:FindTemplateRoot() --- print("DestructibleWeaponClient: " .. tostring(templateRoot) .. "; " .. tostring(amount) .. "; " .. tostring(position) .. "; " .. tostring(player)) - - local viewPos = player:GetViewWorldPosition() - local distance = (viewPos - position).sizeSquared - local isBig = (distance < 1000000) -- 10 meters squared - local damageColor = Color.RED - - if amount == 0 then - damageColor = Color.WHITE - amount = "Blocked" - end - - UI.ShowFlyUpText(tostring(amount), position, {color = damageColor, isBig = isBig}) -end - -local damagedListener = Events.Connect("ShowDamageFeedback", OnShowDamageFeedback) - - -function Cleanup() - if damagedListener then - damagedListener:Disconnect() - damagedListener = nil - end -end - -function OnDestroyed(obj) - Cleanup() -end - -WEAPON.destroyEvent:Connect(OnDestroyed) - diff --git a/Data/Scripts/DestructibleWeaponServer.lua b/Data/Scripts/DestructibleWeaponServer.lua index cc7af5f6..acc4e85c 100644 --- a/Data/Scripts/DestructibleWeaponServer.lua +++ b/Data/Scripts/DestructibleWeaponServer.lua @@ -1,6 +1,6 @@ --[[ Destructible Weapon - Server - v0.13.0 + v1.0 by: standardcombo, Chris C. Script that specializes a weapon's basic attack to work with the NPC AI Kit. diff --git a/Data/Scripts/MOBA_Example_README.lua b/Data/Scripts/MOBA_Example_README.lua index fc7996c0..455c2bff 100644 --- a/Data/Scripts/MOBA_Example_README.lua +++ b/Data/Scripts/MOBA_Example_README.lua @@ -1,8 +1,7 @@ --[[ - TODO - - (The MOBA example works, but is still under construction) + The MOBA example does not rely on any special scripts or components, it's formed by + combining the common elements. See the NPC_KIT_README file for general info about the NPC Kit. diff --git a/Data/Scripts/NPCAIClient.lua b/Data/Scripts/NPCAIClient.lua index 57c04527..6ebc51ed 100644 --- a/Data/Scripts/NPCAIClient.lua +++ b/Data/Scripts/NPCAIClient.lua @@ -1,6 +1,6 @@ --[[ NPCAI - Client - v0.14.1 + v1.0.0 by: standardcombo Modified by: Luapi diff --git a/Data/Scripts/NPCAIServer.lua b/Data/Scripts/NPCAIServer.lua index 5cb27c32..4cb360ec 100644 --- a/Data/Scripts/NPCAIServer.lua +++ b/Data/Scripts/NPCAIServer.lua @@ -1,6 +1,6 @@ --[[ NPCAI - Server - v0.14.1 + v1.0.0 by: standardcombo contributions: DarkDev, WaveParadigm diff --git a/Data/Scripts/NPCAttackClient.lua b/Data/Scripts/NPCAttackClient.lua index 87fa1b2e..abebd36a 100644 --- a/Data/Scripts/NPCAttackClient.lua +++ b/Data/Scripts/NPCAttackClient.lua @@ -1,7 +1,7 @@ --[[ NPCAttack - Client + v1.0.0 by: standardcombo - v0.13.1 The client counterpart for NPCAttackServer. Listens for damage and destroy networked events and spawns the appropriate effects for each. diff --git a/Data/Scripts/NPCAttackServer.lua b/Data/Scripts/NPCAttackServer.lua index 82ad6fee..9eebb586 100644 --- a/Data/Scripts/NPCAttackServer.lua +++ b/Data/Scripts/NPCAttackServer.lua @@ -1,6 +1,6 @@ --[[ NPCAttack - Server - v0.14.0 - 2022/10/20 + v1.0.0 by: standardcombo Works in conjunction with NPCAIServer. The separation of the two scripts makes it diff --git a/Data/Scripts/NPCCampBehavior_AlwaysSpawn.lua b/Data/Scripts/NPCCampBehavior_AlwaysSpawn.lua index e29566dc..563ab890 100644 --- a/Data/Scripts/NPCCampBehavior_AlwaysSpawn.lua +++ b/Data/Scripts/NPCCampBehavior_AlwaysSpawn.lua @@ -1,7 +1,7 @@ --[[ NPCCampBehavior - Always Spawn + v1.0 by: standardcombo - v0.13.0 Works in conjunction with NPCSpawner and expects it as a sibling script. diff --git a/Data/Scripts/NPCCampBehavior_PeriodicSpawn.lua b/Data/Scripts/NPCCampBehavior_PeriodicSpawn.lua index fa5fd8d4..56c34a14 100644 --- a/Data/Scripts/NPCCampBehavior_PeriodicSpawn.lua +++ b/Data/Scripts/NPCCampBehavior_PeriodicSpawn.lua @@ -1,7 +1,7 @@ --[[ NPCCampBehavior - Periodic Spawn + v1.0 by: standardcombo - v0.13.0 Works in conjunction with NPCSpawner and expects it as a sibling script. --]] diff --git a/Data/Scripts/NPCCampBehavior_PlayerProximity.lua b/Data/Scripts/NPCCampBehavior_PlayerProximity.lua index ca2608a2..774e4041 100644 --- a/Data/Scripts/NPCCampBehavior_PlayerProximity.lua +++ b/Data/Scripts/NPCCampBehavior_PlayerProximity.lua @@ -1,7 +1,7 @@ --[[ NPCCampBehavior - Player Proximity + v1.0 by: standardcombo - v0.13.0 Works in conjunction with NPCSpawner and expects it as a sibling script. diff --git a/Data/Scripts/NPCHeadshot.lua b/Data/Scripts/NPCHeadshot.lua index cec0e1b3..e4fdf356 100644 --- a/Data/Scripts/NPCHeadshot.lua +++ b/Data/Scripts/NPCHeadshot.lua @@ -1,6 +1,6 @@ --[[ NPC Headshot - server component - v0.13.0 + v1.0 by: standardcombo Optional component that allows an NPC to specify a head point, for increased diff --git a/Data/Scripts/NPCHealthBarDataProviderClient.lua b/Data/Scripts/NPCHealthBarDataProviderClient.lua index 2af3b32f..4f16fa61 100644 --- a/Data/Scripts/NPCHealthBarDataProviderClient.lua +++ b/Data/Scripts/NPCHealthBarDataProviderClient.lua @@ -1,7 +1,7 @@ --[[ NPCHealthBarDataProvider - Client + v1.0 by: standardcombo - v0.14.0 Works in conjunction with NPCHealthBar. Sets itself as the data provider for the UI. Other objects could use the same health bar UI by implementing their own data diff --git a/Data/Scripts/NPCManager.lua b/Data/Scripts/NPCManager.lua index b6c61c45..2f16b3a9 100644 --- a/Data/Scripts/NPCManager.lua +++ b/Data/Scripts/NPCManager.lua @@ -1,6 +1,6 @@ --[[ NPC Manager - v0.14.0 + v1.0 by: standardcombo Provides bookkeeping on all NPCs contained in a game. diff --git a/Data/Scripts/NPCSpawner.lua b/Data/Scripts/NPCSpawner.lua index eff26f13..d29fdfb0 100644 --- a/Data/Scripts/NPCSpawner.lua +++ b/Data/Scripts/NPCSpawner.lua @@ -1,7 +1,7 @@ --[[ NPCSpawner + v1.0 by: standardcombo - v0.13.0 Spawns and despawns NPCs. Relies on a separate behavior script to tell it when to spawn and despawn. diff --git a/Data/Scripts/NPCWaypoint.lua b/Data/Scripts/NPCWaypoint.lua index 4356dc65..93e72a20 100644 --- a/Data/Scripts/NPCWaypoint.lua +++ b/Data/Scripts/NPCWaypoint.lua @@ -1,7 +1,7 @@ --[[ -NPC Waypoint -by: standardcombo -v1.1.0 + NPC Waypoint + v1.1 + by: standardcombo The waypoint detects NPCs entering its trigger and directs them to move to the next objective. Can be used for patrolling behaviors, random folks in town, traffic lanes, etc. diff --git a/Data/Scripts/NPC_KIT_README.lua b/Data/Scripts/NPC_KIT_README.lua index 6c33e772..892ecde0 100644 --- a/Data/Scripts/NPC_KIT_README.lua +++ b/Data/Scripts/NPC_KIT_README.lua @@ -1,6 +1,6 @@ --[[ NPC AI Kit - v0.13.0 - 2022/04/17 + v1.0.0 - 2022/12/13 by: standardcombo NPC tutorials at: https://youtu.be/fz5y8MRXM7w diff --git a/Data/Scripts/NavMeshZones.lua b/Data/Scripts/NavMeshZones.lua index 709c03ed..c9e02ae9 100644 --- a/Data/Scripts/NavMeshZones.lua +++ b/Data/Scripts/NavMeshZones.lua @@ -1,6 +1,6 @@ --[[ NavMesh Zones - v0.12.0 + v1.0 by: standardcombo Defines trigger regions where NPCs look for navigational mesh paths. diff --git a/Data/Scripts/StateBasedAnimController.lua b/Data/Scripts/StateBasedAnimController.lua index 251f89d7..3c88552b 100644 --- a/Data/Scripts/StateBasedAnimController.lua +++ b/Data/Scripts/StateBasedAnimController.lua @@ -1,6 +1,6 @@ --[[ State-Based Animation Controller - v0.13.0 + v1.0 by: standardcombo Instead of playing animations and stances on an animated mesh, this controller diff --git a/Data/Scripts/WaypointExample_README.lua b/Data/Scripts/WaypointExample_README.lua index 486516b2..eeaf2264 100644 --- a/Data/Scripts/WaypointExample_README.lua +++ b/Data/Scripts/WaypointExample_README.lua @@ -1,6 +1,6 @@ --[[ Waypoint Example - v0.13.0 + v1.0 by: standardcombo This example of an enemy camp combines a few components to create an encounter where a diff --git a/Release Notes.txt b/Release Notes.txt index a9f73696..5510adc5 100644 --- a/Release Notes.txt +++ b/Release Notes.txt @@ -2,11 +2,55 @@ NPC AI Kit Release Notes -v0.14.??? - 2022/12/13 -Version 0.14 was developed in conjunction with the Loot MMO framework. + +v1.0.0 - 2022/12/13 +This version 1.0 is inteded to be forwards-compatible. It also is mostly compatible with v0.11 and later. + +Additions +- Added the release notes file you are reading now. +- New Bandit NPC with four rarity levels. +- EnemyHealthBarTopUI: Shows the current enemy you are fighting in the top HUD. +- Enemy data table: Provides additional metadata about NPCs, such as display name. +- Targeting system: Press Tab (or PageUp) to focus on a nearby enemy. +- Added the optional TargetRegister script to NPC templates. +- NPCs can now be stunned by calling NPCAIServer::GoToStunState(). Call GoToSleepState() to un-stun them. Note: Kit does not include any ability or item that applies stuns. +- Added support for Loot Drop Factory 3.0. +- The NPCManager has two new functions: GetNpcs() and GetDamageables(). +- Added support for an optional "Level" property on NPCs, with rudimentary hitpoint and damage scaling. +- NPCs now broadcast a server event "NPC.TargetChanged" when they acquire a target. +- Health bars now support additional properties: Name, Rarity and Level. +- Added a healing color to the feedback fly-up numbers. + +Changes +- In NPC templates, the engage SFX and damage properties have moved from scripts to the template root. +- Health bars changed to the minimalist version for the dragons, raptor and spider. +- Changed dragon attacks to not be homing projectiles. +- Improved the VFX on dragon attacks. +- The Leash script is now configured to heal by default. +- Waypoints are now much easier to edit due to a new hierarchy structure. +- Optimized rendering and networking across all objects. + +Bugs +- Fixed an error in CombatWrapNPC when melee weapons hit NPC projectiles. +- Fixed a bug where some of the animation controllers would replay the death animation in case a disabled NPC kept taking damage. +- Fixed deprecation warnings. + +Combat Dependencies v1.3 +- New: Combat Events script. Builds upon the events from CombatWrapAPI, with the addition of priority order for listeners. +- New: Combat Accountant. Keeps track of who damaged what, for rewards and assists. + +CombatWrapAPI v1.0 +- Added GetAll() +- Added GetMaxWalkSpeed() and SetMaxWalkSpeed() + +Tags v1.2 +- Now more flexible. Tags can be added to a variety of object types. + +Known issue: While this version is compatible with Loot Drop Factory 2.0, expect non-critical errors due to new LootID on some NPCs. Those can be fixed by either A) Change the LootID on NPCs, B) Add the required IDs to the Factory, or C) Use Loot Drop Factory 3.0. +v0.14 was developed in conjunction with the Loot MMO framework, circa 2022/10/20.