Spaces:
No application file
No application file
Corentin Cailleaud commited on
Commit ·
c057fe6
1
Parent(s): a7eab3d
cubzh.lua
CHANGED
|
@@ -314,7 +314,7 @@ if IsClient then
|
|
| 314 |
gigaxHttpClient:updateCharacterPosition(simulation.engineId, characterId, closest._id, position)
|
| 315 |
end
|
| 316 |
|
| 317 |
-
local function createNPC(name, currentPosition, rotation)
|
| 318 |
-- Create the NPC's Object and Avatar
|
| 319 |
local NPC = {}
|
| 320 |
NPC.object = Object()
|
|
@@ -333,7 +333,7 @@ if IsClient then
|
|
| 333 |
})
|
| 334 |
|
| 335 |
local text = Text()
|
| 336 |
-
text.Text = " " ..
|
| 337 |
text:SetParent(NPC.object)
|
| 338 |
text.Type = TextType.Screen
|
| 339 |
text.IsUnlit = true
|
|
@@ -415,7 +415,7 @@ if IsClient then
|
|
| 415 |
elem.onEndCallback = nil
|
| 416 |
end
|
| 417 |
for _, elem in ipairs(config.NPCs) do
|
| 418 |
-
createNPC(elem.name, elem.position, elem.rotation)
|
| 419 |
end
|
| 420 |
registerEngine(config)
|
| 421 |
end
|
|
@@ -454,7 +454,7 @@ local skills = {
|
|
| 454 |
return
|
| 455 |
end
|
| 456 |
dialog:create(action.content, npc.avatar.Head)
|
| 457 |
-
print(string.format("%s: %s", npc.
|
| 458 |
end,
|
| 459 |
action_format_str = "{protagonist_name} said '{content}' to {target_name}",
|
| 460 |
},
|
|
@@ -471,7 +471,7 @@ local skills = {
|
|
| 471 |
end
|
| 472 |
local npc = client:getNpc(action.character_id)
|
| 473 |
dialog:create("I'm going to " .. targetName, npc.avatar.Head)
|
| 474 |
-
print(string.format("%s: %s", npc.
|
| 475 |
local origin = Map:WorldToBlock(npc.object.Position)
|
| 476 |
local destination = Map:WorldToBlock(targetPosition) + Number3(math.random(-1, 1), 0, math.random(-1, 1))
|
| 477 |
local canMove = pathfinding:moveObjectTo(npc.object, origin, destination)
|
|
@@ -494,7 +494,7 @@ local skills = {
|
|
| 494 |
end
|
| 495 |
|
| 496 |
dialog:create("<Greets you warmly!>", npc.avatar.Head)
|
| 497 |
-
print(string.format("%s: %s", npc.
|
| 498 |
|
| 499 |
npc.avatar.Animations.SwingRight:Play()
|
| 500 |
end,
|
|
@@ -512,7 +512,7 @@ local skills = {
|
|
| 512 |
end
|
| 513 |
|
| 514 |
dialog:create("<Jumps in the air!>", npc.avatar.Head)
|
| 515 |
-
print(string.format("%s: %s", npc.
|
| 516 |
|
| 517 |
npc.object.avatarContainer.Physics = PhysicsMode.Dynamic
|
| 518 |
npc.object.avatarContainer.Velocity.Y = 50
|
|
@@ -534,7 +534,7 @@ local skills = {
|
|
| 534 |
end
|
| 535 |
|
| 536 |
dialog:create("I'm following you", npc.avatar.Head)
|
| 537 |
-
print(string.format("%s: %s", npc.
|
| 538 |
|
| 539 |
followHandler = pathfinding:followObject(npc.object, Player)
|
| 540 |
return {
|
|
@@ -559,7 +559,6 @@ local skills = {
|
|
| 559 |
|
| 560 |
require("explode"):shapes(npc.avatar)
|
| 561 |
dialog:create("*boom*", npc.avatar.Head)
|
| 562 |
-
--print(string.format("%s: %s", npc.name, "EXPLODING"))
|
| 563 |
npc.avatar.IsHidden = true
|
| 564 |
Timer(5, function()
|
| 565 |
dialog:create("Aaaaand... I'm back!", npc.avatar.Head)
|
|
@@ -664,6 +663,7 @@ local locations = {
|
|
| 664 |
local NPCs = {
|
| 665 |
{
|
| 666 |
name = "npcscientist",
|
|
|
|
| 667 |
physicalDescription = "Short, with a stern expression and sharp eyes",
|
| 668 |
psychologicalProfile = "Grumpy but insightful, suspicious yet intelligent",
|
| 669 |
currentLocationName = "Scientist Island",
|
|
@@ -676,6 +676,7 @@ local NPCs = {
|
|
| 676 |
},
|
| 677 |
{
|
| 678 |
name = "npcbaker",
|
|
|
|
| 679 |
physicalDescription = "Tall, with a solemn demeanor and thoughtful eyes",
|
| 680 |
psychologicalProfile = "Wise and mysterious, calm under pressure",
|
| 681 |
currentLocationName = "Baker Island",
|
|
@@ -688,6 +689,7 @@ local NPCs = {
|
|
| 688 |
},
|
| 689 |
{
|
| 690 |
name = "npcpirate",
|
|
|
|
| 691 |
physicalDescription = "Average height, with bright green eyes and a warm smile",
|
| 692 |
psychologicalProfile = "Friendly and helpful, quick-witted and resourceful",
|
| 693 |
currentLocationName = "Pirate Island",
|
|
|
|
| 314 |
gigaxHttpClient:updateCharacterPosition(simulation.engineId, characterId, closest._id, position)
|
| 315 |
end
|
| 316 |
|
| 317 |
+
local function createNPC(name, gameName, currentPosition, rotation)
|
| 318 |
-- Create the NPC's Object and Avatar
|
| 319 |
local NPC = {}
|
| 320 |
NPC.object = Object()
|
|
|
|
| 333 |
})
|
| 334 |
|
| 335 |
local text = Text()
|
| 336 |
+
text.Text = " " .. gameName .. " "
|
| 337 |
text:SetParent(NPC.object)
|
| 338 |
text.Type = TextType.Screen
|
| 339 |
text.IsUnlit = true
|
|
|
|
| 415 |
elem.onEndCallback = nil
|
| 416 |
end
|
| 417 |
for _, elem in ipairs(config.NPCs) do
|
| 418 |
+
createNPC(elem.name, elem.gameName, elem.position, elem.rotation)
|
| 419 |
end
|
| 420 |
registerEngine(config)
|
| 421 |
end
|
|
|
|
| 454 |
return
|
| 455 |
end
|
| 456 |
dialog:create(action.content, npc.avatar.Head)
|
| 457 |
+
print(string.format("%s: %s", npc.gameName, action.content))
|
| 458 |
end,
|
| 459 |
action_format_str = "{protagonist_name} said '{content}' to {target_name}",
|
| 460 |
},
|
|
|
|
| 471 |
end
|
| 472 |
local npc = client:getNpc(action.character_id)
|
| 473 |
dialog:create("I'm going to " .. targetName, npc.avatar.Head)
|
| 474 |
+
print(string.format("%s: %s", npc.gameName, "I'm going to " .. targetName))
|
| 475 |
local origin = Map:WorldToBlock(npc.object.Position)
|
| 476 |
local destination = Map:WorldToBlock(targetPosition) + Number3(math.random(-1, 1), 0, math.random(-1, 1))
|
| 477 |
local canMove = pathfinding:moveObjectTo(npc.object, origin, destination)
|
|
|
|
| 494 |
end
|
| 495 |
|
| 496 |
dialog:create("<Greets you warmly!>", npc.avatar.Head)
|
| 497 |
+
print(string.format("%s: %s", npc.gameName, "<Greets you warmly!>"))
|
| 498 |
|
| 499 |
npc.avatar.Animations.SwingRight:Play()
|
| 500 |
end,
|
|
|
|
| 512 |
end
|
| 513 |
|
| 514 |
dialog:create("<Jumps in the air!>", npc.avatar.Head)
|
| 515 |
+
print(string.format("%s: %s", npc.gameName, "<Jumps in the air!>"))
|
| 516 |
|
| 517 |
npc.object.avatarContainer.Physics = PhysicsMode.Dynamic
|
| 518 |
npc.object.avatarContainer.Velocity.Y = 50
|
|
|
|
| 534 |
end
|
| 535 |
|
| 536 |
dialog:create("I'm following you", npc.avatar.Head)
|
| 537 |
+
print(string.format("%s: %s", npc.gameName, "I'm following you"))
|
| 538 |
|
| 539 |
followHandler = pathfinding:followObject(npc.object, Player)
|
| 540 |
return {
|
|
|
|
| 559 |
|
| 560 |
require("explode"):shapes(npc.avatar)
|
| 561 |
dialog:create("*boom*", npc.avatar.Head)
|
|
|
|
| 562 |
npc.avatar.IsHidden = true
|
| 563 |
Timer(5, function()
|
| 564 |
dialog:create("Aaaaand... I'm back!", npc.avatar.Head)
|
|
|
|
| 663 |
local NPCs = {
|
| 664 |
{
|
| 665 |
name = "npcscientist",
|
| 666 |
+
gameName = "Scientist",
|
| 667 |
physicalDescription = "Short, with a stern expression and sharp eyes",
|
| 668 |
psychologicalProfile = "Grumpy but insightful, suspicious yet intelligent",
|
| 669 |
currentLocationName = "Scientist Island",
|
|
|
|
| 676 |
},
|
| 677 |
{
|
| 678 |
name = "npcbaker",
|
| 679 |
+
gameName = "Baker",
|
| 680 |
physicalDescription = "Tall, with a solemn demeanor and thoughtful eyes",
|
| 681 |
psychologicalProfile = "Wise and mysterious, calm under pressure",
|
| 682 |
currentLocationName = "Baker Island",
|
|
|
|
| 689 |
},
|
| 690 |
{
|
| 691 |
name = "npcpirate",
|
| 692 |
+
gameName = "Pirate",
|
| 693 |
physicalDescription = "Average height, with bright green eyes and a warm smile",
|
| 694 |
psychologicalProfile = "Friendly and helpful, quick-witted and resourceful",
|
| 695 |
currentLocationName = "Pirate Island",
|