Update built-in mods

This commit is contained in:
Agent X 2024-09-01 12:44:29 -04:00
parent e73a95368c
commit 8fc8354124
210 changed files with 643 additions and 434 deletions

View file

@ -0,0 +1,16 @@
if not _G.charSelectExists then
local first = false
hook_event(HOOK_ON_LEVEL_INIT, function()
if not first then
first = true
play_sound(SOUND_MENU_CAMERA_BUZZ, gGlobalSoundSource)
djui_chat_message_create("\\#ffffa0\\Extra Characters requires Character Select to be enabled.\nPlease rehost with it enabled.")
end
end)
return
end
MOD_VERSION = "v4.1"
E_MODEL_VL = smlua_model_util_get_id("vl_geo")
E_MODEL_CJES = smlua_model_util_get_id("cjes_geo")

View file

@ -1,49 +1,167 @@
-- name: [CS] VL-Tone & Cjes Luigi
-- description: [CS] VL-Tone & Cjes Luigi\nBy Coop Deluxe Team\n\nThis Character Select pack adds VL-Tone Luigi and Cjes Luigi, who was originally the model for luigi in earlier versions of sm64ex-coop.
-- description: [CS] \\#00ff00\\VL-Tone \\#dcdcdc\\& \\#00ff00\\Cjes Luigi\n\\#dcdcdc\\By: Coop Deluxe Team\n\nReturn of TWO nostalgic Luigi's dating back to the 2000s!\n\n\\#00ff00\\Model Credits:\n\\#dcdcdc\\VL-Tone\nCJes\n\n\\#00ff00\\Model Porting:\n\\#dcdcdc\\AngelicMiracles "Yuyake"\nFluffaMario\nSonicDark
if not _G.charSelectExists then
local first = false
hook_event(HOOK_ON_LEVEL_INIT, function()
if not first then
first = true
play_sound(SOUND_MENU_CAMERA_BUZZ, gGlobalSoundSource)
djui_chat_message_create("\\#ffffa0\\Extra Characters requires Character Select to be enabled.\nPlease rehost with it enabled.")
end
end)
return
end
local E_MODEL_VL = smlua_model_util_get_id("vl_geo")
local E_MODEL_CJES = smlua_model_util_get_id("cjes_geo")
local TEXT_MOD_NAME = "VL-Tone & Cjes Luigi"
local TEX_LUIGI = get_texture_info("luigi_icon")
-- localize functions to improve performance
local table_insert,play_sound,djui_hud_get_screen_width,maxf,math_sin,djui_hud_set_color,djui_hud_set_font,string_format,djui_hud_measure_text,djui_hud_print_text,djui_hud_set_resolution,min,math_min,math_max,djui_hud_set_rotation,djui_hud_render_rect = table.insert,play_sound,djui_hud_get_screen_width,maxf,math.sin,djui_hud_set_color,djui_hud_set_font,string.format,djui_hud_measure_text,djui_hud_print_text,djui_hud_set_resolution,min,math.min,math.max,djui_hud_set_rotation,djui_hud_render_rect
local PALETTE_VL = {
[PANTS] = {r = 0x20, g = 0x14, b = 0x7c}, -- 20147C
[SHIRT] = {r = 0x00, g = 0x98, b = 0x00}, -- 009800
[GLOVES] = {r = 0xff, g = 0xff, b = 0xff}, -- FFFFFF
[SHOES] = {r = 0x48, g = 0x20, b = 0x18}, -- 482018
[HAIR] = {r = 0x68, g = 0x24, b = 0x14}, -- 682414
[SKIN] = {r = 0xfe, g = 0xc1, b = 0x79}, -- FEC179
[CAP] = {r = 0x00, g = 0x98, b = 0x00}, -- 009800
[EMBLEM] = {r = 0x00, g = 0x98, b = 0x00}, -- 009800
[PANTS] = { r = 0x20, g = 0x14, b = 0x7c }, -- 20147C
[SHIRT] = { r = 0x00, g = 0x98, b = 0x00 }, -- 009800
[GLOVES] = { r = 0xff, g = 0xff, b = 0xff }, -- FFFFFF
[SHOES] = { r = 0x48, g = 0x20, b = 0x18 }, -- 482018
[HAIR] = { r = 0x68, g = 0x24, b = 0x14 }, -- 682414
[SKIN] = { r = 0xfe, g = 0xc1, b = 0x79 }, -- FEC179
[CAP] = { r = 0x00, g = 0x98, b = 0x00 }, -- 009800
[EMBLEM] = { r = 0x00, g = 0x98, b = 0x00 }, -- 009800
}
local PALETTE_CJES = {
[PANTS] = {r = 0x00, g = 0x00, b = 0xff}, -- 0000FF
[SHIRT] = {r = 0x00, g = 0x8c, b = 0x00}, -- 008C00
[GLOVES] = {r = 0xff, g = 0xff, b = 0xff}, -- FFFFFF
[SHOES] = {r = 0x50, g = 0x16, b = 0x07}, -- 501607
[HAIR] = {r = 0x73, g = 0x06, b = 0x00}, -- 730600
[SKIN] = {r = 0xfe, g = 0xc1, b = 0x79}, -- FEC179
[CAP] = {r = 0x00, g = 0x8c, b = 0x00}, -- 008C00
[EMBLEM] = {r = 0x00, g = 0x8c, b = 0x00}, -- 008C00
[PANTS] = { r = 0x00, g = 0x00, b = 0xff }, -- 0000FF
[SHIRT] = { r = 0x00, g = 0x8c, b = 0x00 }, -- 008C00
[GLOVES] = { r = 0xff, g = 0xff, b = 0xff }, -- FFFFFF
[SHOES] = { r = 0x50, g = 0x16, b = 0x07 }, -- 501607
[HAIR] = { r = 0x73, g = 0x06, b = 0x00 }, -- 730600
[SKIN] = { r = 0xfe, g = 0xc1, b = 0x79 }, -- FEC179
[CAP] = { r = 0x00, g = 0x8c, b = 0x00 }, -- 008C00
[EMBLEM] = { r = 0x00, g = 0x8c, b = 0x00 }, -- 008C00
}
CT_VL_LUIGI = _G.charSelect.character_add("VL-Tone Luigi", {" A fanmade model of Luigi.", "The model was created for the", "program Toad's Tool 64, a romhack editor.", "This model is a nostalgic throwback to", "many players in the SM64 Community!"}, "VL-Tone", {r = 0, g = 152, b = 0}, E_MODEL_VL, CT_LUIGI, TEX_LUIGI)
CT_CJES_LUIGI = _G.charSelect.character_add("Cjes Luigi", {"Another fanmade Luigi model.", "The model originates from Super", "Luigi 64 in 2015.", "This model originally was the", "main Luigi model for sm64ex-coop before", "the giga leak occured in 2020 and", "eventually replaced it." }, "Cjes", {r = 0, g = 140, b = 0}, E_MODEL_CJES, CT_LUIGI, TEX_LUIGI)
local CT_VL_AND_CJES = _G.charSelect.character_add("VL & Cjes", "Fanmade models of Luigi that are a big nostalgic throwback to the Super Mario 64 fan community! VL was created as an easter egg for Toads Tool 64, a romhack editor. Cjes was the original model for sm64ex-coop before it was eventually replaced.", "VL-Tone and Cjes", {r = 0, g = 152, b = 0}, E_MODEL_VL, CT_LUIGI, gTextures.luigi_head)
_G.charSelect.character_add_palette_preset(E_MODEL_VL, PALETTE_VL)
_G.charSelect.character_add_palette_preset(E_MODEL_CJES, PALETTE_CJES)
--------------------------------------------
--- Alt Costume code from Paper Partners ---
------------ Modified by Squishy -----------
--------------------------------------------
local character_edit = _G.charSelect.character_edit
local character_get_current_number = _G.charSelect.character_get_current_number
local character_get_current_table = _G.charSelect.character_get_current_table
local get_options_status = _G.charSelect.get_options_status
local get_menu_color = _G.charSelect.get_menu_color
local hook_render_in_menu = _G.charSelect.hook_render_in_menu
local altCostumes = {
[CT_VL_AND_CJES] = {
currSkin = 1,
{ name = " VL ", model = E_MODEL_VL },
{ name = " CJES ", model = E_MODEL_CJES }
}
}
local function update_character_skin(currChar, currAlt)
local currSkin = altCostumes[currChar][currAlt]
if altCostumes[currChar].desc == nil then
altCostumes[currChar].desc = character_get_current_table().description
end
local description = {}
for i = 1, #altCostumes[currChar].desc do
table_insert(description, altCostumes[currChar].desc[i])
end
if currSkin.name ~= "" then
table_insert(description, "")
table_insert(description, "Current Outfit: "..currSkin.name)
end
character_edit(currChar, nil, description, nil, nil, currSkin.model, nil, nil)
local cameraToObject = gMarioStates[0].marioObj.header.gfx.cameraToObject
play_sound(SOUND_MENU_MESSAGE_NEXT_PAGE, cameraToObject)
end
local inputLockTimer = 0
local buttonAnimTimer = 0
local latencyValueTable = { 12, 6, 3 }
local function hud_render()
local width = djui_hud_get_screen_width() + 1.4
local widthScale = maxf(width, 321.4) / 320
local currChar = character_get_current_number()
local charColors = character_get_current_table().color
-- mimick button swaying, which is missing from the paper code
local buttonAnim = 0
local charSelectAnim = get_options_status(_G.charSelect.optionTableRef.anims)
if charSelectAnim > 0 then
buttonAnimTimer = buttonAnimTimer + 1
buttonAnim = math_sin(buttonAnimTimer * 0.05) * 2.5 + 5
else
buttonAnim = 10
end
local inputLockTimerTo = latencyValueTable[get_options_status(_G.charSelect.optionTableRef.inputLatency) + 1]
if altCostumes[currChar] ~= nil then
-- render Mod Variond under CS version
local menuColor = get_menu_color()
djui_hud_set_color(menuColor.r, menuColor.g, menuColor.b, 255)
djui_hud_set_font(FONT_TINY)
local str = string_format("VL-Tone & Cjes Luigi (%s)", MOD_VERSION)
djui_hud_print_text(str, width - 5 - djui_hud_measure_text(str) * 0.5, 3, 0.5)
---@type Controller
local c = _G.charSelect.controller
local currAlts = altCostumes[currChar]
djui_hud_set_font(FONT_NORMAL)
djui_hud_set_resolution(RESOLUTION_N64)
local inputLockTimerAnim = 0
local buttonX = 20 * widthScale + buttonAnim
local x1 = buttonX - 4
local x2 = x1 + 73
local y = 97
if charSelectAnim > 0 then
inputLockTimerAnim = inputLockTimer / inputLockTimerTo * 3
x1 = x1 + math_min(inputLockTimerAnim, 0)
x2 = x2 + math_max(inputLockTimerAnim, 0)
end
-- left Arrow
if currAlts.currSkin > 1 then
djui_hud_set_color(charColors.r, charColors.g, charColors.b, 255)
djui_hud_set_rotation(0x2000, 0.5, 0.5)
djui_hud_render_rect(x1, y, 5, 5)
djui_hud_set_color(0, 0, 0, 255)
djui_hud_set_rotation(0, 0.5, 0.5)
djui_hud_render_rect(x1 + 2.5, y - 2, 6, 8)
djui_hud_set_color(charColors.r, charColors.g, charColors.b, 255)
djui_hud_render_rect(buttonX, y - 3, 1, 10)
if inputLockTimer == 0 and (c.buttonDown & L_JPAD ~= 0 or c.stickX < -0.5) then
currAlts.currSkin = math_max(currAlts.currSkin - 1, 1)
update_character_skin(currChar, currAlts.currSkin)
inputLockTimer = -inputLockTimerTo
end
end
-- right Arrow
if currAlts.currSkin < #currAlts then
-- changed arrows to mimick the ones seen in the options menu
djui_hud_set_color(charColors.r, charColors.g, charColors.b, 255)
djui_hud_set_rotation(0x2000, 0.5, 0.5)
djui_hud_render_rect(x2, y, 5, 5)
djui_hud_set_color(0, 0, 0, 255)
djui_hud_set_rotation(0, 0.5, 0.5)
djui_hud_render_rect(x2 - 3.5, y - 2, 6, 8)
djui_hud_set_color(charColors.r, charColors.g, charColors.b, 255)
djui_hud_render_rect(buttonX + 69, y - 3, 1, 10)
if inputLockTimer == 0 and (c.buttonDown & R_JPAD ~= 0 or c.stickX > 0.5) then
currAlts.currSkin = currAlts.currSkin + 1
update_character_skin(currChar, currAlts.currSkin)
inputLockTimer = inputLockTimerTo
end
end
-- use an input lock to prevent cycling too fast
if inputLockTimer > 0 then
inputLockTimer = inputLockTimer - 1
elseif inputLockTimer < 0 then
inputLockTimer = inputLockTimer + 1
end
end
end
hook_render_in_menu(hud_render)

View file

@ -34,3 +34,20 @@ function active_player(m)
end
return true
end
animTables = {}
--- @param charNum integer
--- @param animTable table
--- Adds custom animations to a character
function character_add_animations(charNum, animTable)
animTables[charNum] = animTable
end
--- @param charNum integer
--- @return table
--- Gets a character's custom animations
function character_get_animations(charNum)
return animTables[charNum]
end

Binary file not shown.

View file

@ -0,0 +1,64 @@
if not _G.charSelectExists then return end
local E_MODEL_BIRDO = smlua_model_util_get_id("birdo_geo")
local TEX_BIRDO = get_texture_info("birdo-icon")
VOICETABLE_BIRDO = {
[CHAR_SOUND_ATTACKED] = "birdo_attacked.ogg",
[CHAR_SOUND_COUGHING1] = "birdo_coughing1.ogg",
[CHAR_SOUND_COUGHING2] = "birdo_coughing2.ogg",
[CHAR_SOUND_COUGHING3] = "birdo_coughing3.ogg",
[CHAR_SOUND_DOH] = "birdo_doh.ogg",
[CHAR_SOUND_DROWNING] = "birdo_drowning.ogg",
[CHAR_SOUND_DYING] = "birdo_dying.ogg",
[CHAR_SOUND_EEUH] = "birdo_euuh.ogg",
[CHAR_SOUND_GROUND_POUND_WAH] = "birdo_ground_pound_wah.ogg",
[CHAR_SOUND_HAHA] = "birdo_haha.ogg",
[CHAR_SOUND_HAHA_2] = "birdo_haha2.ogg",
[CHAR_SOUND_HERE_WE_GO] = "birdo_herewego.ogg",
[CHAR_SOUND_HOOHOO] = "birdo_hoohoo.ogg",
[CHAR_SOUND_HRMM] = "birdo_hrmm.ogg",
[CHAR_SOUND_IMA_TIRED] = "birdo_imatired.ogg",
[CHAR_SOUND_MAMA_MIA] = "birdo_mamamia.ogg",
[CHAR_SOUND_LETS_A_GO] = "birdo_letsago.ogg",
[CHAR_SOUND_ON_FIRE] = "birdo_on_fire.ogg",
[CHAR_SOUND_OOOF] = "birdo_ooof.ogg",
[CHAR_SOUND_OOOF2] = "birdo_ooof2.ogg",
[CHAR_SOUND_PANTING] = "birdo_panting.ogg",
[CHAR_SOUND_PANTING_COLD] = "birdo_panting_cold.ogg",
[CHAR_SOUND_PUNCH_HOO] = "birdo_punch_hoo.ogg",
[CHAR_SOUND_PUNCH_WAH] = "birdo_punch_wah.ogg",
[CHAR_SOUND_PUNCH_YAH] = "birdo_punch_yah.ogg",
[CHAR_SOUND_SO_LONGA_BOWSER] = "birdo_solonga_bowser.ogg",
[CHAR_SOUND_SNORING1] = "birdo_snoring1.ogg",
[CHAR_SOUND_SNORING2] = "birdo_snoring2.ogg",
[CHAR_SOUND_SNORING3] = { "birdo_snoring2.ogg", "birdo_snoring1.ogg", "birdo_snoring3.ogg" },
[CHAR_SOUND_TWIRL_BOUNCE] = "birdo_twirl_bounce.ogg",
[CHAR_SOUND_UH] = "birdo_uh.ogg",
[CHAR_SOUND_UH2] = "birdo_uh2.ogg",
[CHAR_SOUND_UH2_2] = "birdo_uh2_2.ogg",
[CHAR_SOUND_WAAAOOOW] = "birdo_waaaooow.ogg",
[CHAR_SOUND_WAH2] = "birdo_ground_pound_wah.ogg",
[CHAR_SOUND_WHOA] = "birdo_whoa.ogg",
[CHAR_SOUND_YAHOO] = "birdo_yahoo.ogg",
[CHAR_SOUND_YAWNING] = "birdo_yawning.ogg",
[CHAR_SOUND_YAHOO_WAHA_YIPPEE] = { "birdo_yahoo.ogg", "birdo_yahoo1.ogg", "birdo_yahoo2.ogg", "birdo_yahoo3.ogg", "birdo_yahoo4.ogg", "birdo_yahoo5.ogg" },
[CHAR_SOUND_YAH_WAH_HOO] = { "birdo_yah_wah_hoo1.ogg", "birdo_yah_wah_hoo2.ogg", "birdo_yah_wah_hoo3.ogg" },
[CHAR_SOUND_HELLO] = "birdo_hello.ogg"
}
local PALETTE_BIRDO = {
[PANTS] = { r = 0xFF, g = 0x00, b = 0x00 }, --FF0000
[SHIRT] = { r = 0xFE, g = 0x4D, b = 0x7F }, --FE4D7F
[GLOVES] = { r = 0xFF, g = 0xFF, b = 0xFF }, --FFFFFF
[SHOES] = { r = 0xFE, g = 0x4D, b = 0x7F }, --FE4D7F
[HAIR] = { r = 0xFF, g = 0x00, b = 0x00 }, --FF0000
[SKIN] = { r = 0xFE, g = 0xC1, b = 0x79 }, --FEC179
[CAP] = { r = 0xFE, g = 0x4D, b = 0x7F }, --FE4D7F
[EMBLEM] = { r = 0xFF, g = 0x00, b = 0x00 } --FF0000
}
_G.CT_BIRDO = _G.charSelect.character_add("Birdo", "A very feminine dinosaur who debutted in Super Mario Bros. 2! Some say she was born a boy but then found out her true self later in life and became a girl. Voiced by: RihannaDeleon.", "thagurltilly & AngelicMiracles", { r = 254, g = 77, b = 127 }, E_MODEL_BIRDO, CT_MARIO, TEX_BIRDO, 1.0, 0)
_G.charSelect.character_add_voice(E_MODEL_BIRDO, VOICETABLE_BIRDO)
_G.charSelect.character_add_palette_preset(E_MODEL_BIRDO, PALETTE_BIRDO)

View file

@ -4,50 +4,48 @@ E_MODEL_DAISY = smlua_model_util_get_id("daisy_geo")
local TEX_DAISY = get_texture_info("daisy_icon")
ACT_DAISY_JUMP = allocate_mario_action(ACT_GROUP_AIRBORNE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_MOVING)
VOICETABLE_DAISY = {
[CHAR_SOUND_ATTACKED] = {'daisy_attacked_1.ogg','daisy_attacked_2.ogg','daisy_attacked_3.ogg'},
[CHAR_SOUND_COUGHING1] = 'daisy_coughing1.ogg',
[CHAR_SOUND_COUGHING2] = 'daisy_coughing2.ogg',
[CHAR_SOUND_COUGHING3] = 'daisy_coughing3.ogg',
[CHAR_SOUND_DOH] = {'daisy_doh_1.ogg', 'daisy_doh_2.ogg'},
[CHAR_SOUND_DROWNING] = 'daisy_drowning_1.ogg',
[CHAR_SOUND_DYING] = 'daisy_dying.ogg',
[CHAR_SOUND_EEUH] = 'daisy_eeuh.ogg',
[CHAR_SOUND_GROUND_POUND_WAH] = 'daisy_ground_pound_wah.ogg',
[CHAR_SOUND_HAHA] = 'daisy_haha.ogg',
[CHAR_SOUND_HAHA_2] = 'daisy_haha_2.ogg',
[CHAR_SOUND_HERE_WE_GO] = 'daisy_here_we_go.ogg',
[CHAR_SOUND_HOOHOO] = 'daisy_hoohoo.ogg',
[CHAR_SOUND_HRMM] = 'daisy_hrmm.ogg',
[CHAR_SOUND_IMA_TIRED] = 'daisy_ima_tired.ogg',
[CHAR_SOUND_MAMA_MIA] = 'daisy_mama_mia.ogg',
[CHAR_SOUND_LETS_A_GO] = 'daisy_lets_a_go.ogg',
[CHAR_SOUND_ON_FIRE] = 'daisy_on_fire.ogg',
[CHAR_SOUND_OOOF] = 'daisy_oof.ogg',
[CHAR_SOUND_OOOF2] = 'daisy_ooof2.ogg',
[CHAR_SOUND_PANTING] = 'daisy_panting.ogg',
[CHAR_SOUND_PANTING_COLD] = 'daisy_panting_cold.ogg',
[CHAR_SOUND_PUNCH_HOO] = 'daisy_punch_hoo.ogg',
[CHAR_SOUND_PUNCH_WAH] = 'daisy_punch_wah.ogg',
[CHAR_SOUND_PUNCH_YAH] = 'daisy_punch_yah.ogg',
[CHAR_SOUND_SO_LONGA_BOWSER] = 'daisy_so_longa_bowser.ogg',
[CHAR_SOUND_SNORING1] = 'daisy_snoring1.ogg',
[CHAR_SOUND_SNORING2] = 'daisy_snoring2.ogg',
[CHAR_SOUND_SNORING3] = {'daisy_snoring2.ogg', 'daisy_snoring1.ogg', 'daisy_snoring3.ogg'},
[CHAR_SOUND_TWIRL_BOUNCE] = 'daisy_twirl_bounce.ogg',
[CHAR_SOUND_UH] = 'daisy_uh.ogg',
[CHAR_SOUND_UH2] = 'daisy_uh2.ogg',
[CHAR_SOUND_UH2_2] = 'daisy_uh2_2.ogg',
[CHAR_SOUND_WAAAOOOW] = 'daisy_waaaooow.ogg',
[CHAR_SOUND_WAH2] = 'daisy_wah2.ogg',
[CHAR_SOUND_WHOA] = 'daisy_whoa.ogg',
[CHAR_SOUND_YAHOO] = 'daisy_yahoo.ogg',
[CHAR_SOUND_YAWNING] = 'daisy_yawning.ogg',
[CHAR_SOUND_YAHOO_WAHA_YIPPEE] = { 'daisy_yahoo.ogg', 'daisy_yahoo2.ogg', 'daisy_yahoo3.ogg', 'daisy_yahoo4.ogg'},
[CHAR_SOUND_YAH_WAH_HOO] = { 'daisy_yah1.ogg', 'daisy_yah2.ogg', 'daisy_yah3.ogg'},
[CHAR_SOUND_HELLO] = 'daisy_double_jump.ogg'
[CHAR_SOUND_ATTACKED] = { "daisy_attacked_1.ogg","daisy_attacked_2.ogg","daisy_attacked_3.ogg" },
[CHAR_SOUND_COUGHING1] = "daisy_coughing1.ogg",
[CHAR_SOUND_COUGHING2] = "daisy_coughing2.ogg",
[CHAR_SOUND_COUGHING3] = "daisy_coughing3.ogg",
[CHAR_SOUND_DOH] = { "daisy_doh_1.ogg", "daisy_doh_2.ogg" },
[CHAR_SOUND_DROWNING] = "daisy_drowning_1.ogg",
[CHAR_SOUND_DYING] = "daisy_dying.ogg",
[CHAR_SOUND_EEUH] = "daisy_eeuh.ogg",
[CHAR_SOUND_GROUND_POUND_WAH] = "daisy_ground_pound_wah.ogg",
[CHAR_SOUND_HAHA] = "daisy_haha.ogg",
[CHAR_SOUND_HAHA_2] = "daisy_haha_2.ogg",
[CHAR_SOUND_HERE_WE_GO] = "daisy_here_we_go.ogg",
[CHAR_SOUND_HOOHOO] = "daisy_hoohoo.ogg",
[CHAR_SOUND_HRMM] = "daisy_hrmm.ogg",
[CHAR_SOUND_IMA_TIRED] = "daisy_ima_tired.ogg",
[CHAR_SOUND_MAMA_MIA] = "daisy_mama_mia.ogg",
[CHAR_SOUND_LETS_A_GO] = "daisy_lets_a_go.ogg",
[CHAR_SOUND_ON_FIRE] = "daisy_on_fire.ogg",
[CHAR_SOUND_OOOF] = "daisy_oof.ogg",
[CHAR_SOUND_OOOF2] = "daisy_ooof2.ogg",
[CHAR_SOUND_PANTING] = "daisy_panting.ogg",
[CHAR_SOUND_PANTING_COLD] = "daisy_panting_cold.ogg",
[CHAR_SOUND_PUNCH_HOO] = "daisy_punch_hoo.ogg",
[CHAR_SOUND_PUNCH_WAH] = "daisy_punch_wah.ogg",
[CHAR_SOUND_PUNCH_YAH] = "daisy_punch_yah.ogg",
[CHAR_SOUND_SO_LONGA_BOWSER] = "daisy_so_longa_bowser.ogg",
[CHAR_SOUND_SNORING1] = "daisy_snoring1.ogg",
[CHAR_SOUND_SNORING2] = "daisy_snoring2.ogg",
[CHAR_SOUND_SNORING3] = {"daisy_snoring2.ogg", "daisy_snoring1.ogg", "daisy_snoring3.ogg"},
[CHAR_SOUND_TWIRL_BOUNCE] = "daisy_twirl_bounce.ogg",
[CHAR_SOUND_UH] = "daisy_uh.ogg",
[CHAR_SOUND_UH2] = "daisy_uh2.ogg",
[CHAR_SOUND_UH2_2] = "daisy_uh2_2.ogg",
[CHAR_SOUND_WAAAOOOW] = "daisy_waaaooow.ogg",
[CHAR_SOUND_WAH2] = "daisy_wah2.ogg",
[CHAR_SOUND_WHOA] = "daisy_whoa.ogg",
[CHAR_SOUND_YAHOO] = "daisy_yahoo.ogg",
[CHAR_SOUND_YAWNING] = "daisy_yawning.ogg",
[CHAR_SOUND_YAHOO_WAHA_YIPPEE] = { "daisy_yahoo.ogg", "daisy_yahoo2.ogg", "daisy_yahoo3.ogg", "daisy_yahoo4.ogg" },
[CHAR_SOUND_YAH_WAH_HOO] = { "daisy_yah1.ogg", "daisy_yah2.ogg", "daisy_yah3.ogg" },
[CHAR_SOUND_HELLO] = "daisy_double_jump.ogg"
}
--CAPS (Will be worked on in the future)--
@ -58,86 +56,86 @@ VOICETABLE_DAISY = {
--metalWing = smlua_model_util_get_id("daisys_metal_wing_cap_geo")
--}
local ANIMTABLE_DAISY = {
[CHAR_ANIM_RUNNING] = 'daisy_running',
[CHAR_ANIM_IDLE_HEAD_CENTER] = 'daisy_idle_head_center',
[CHAR_ANIM_IDLE_HEAD_LEFT] = 'daisy_idle_head_left',
[CHAR_ANIM_IDLE_HEAD_RIGHT] = 'daisy_idle_head_right',
[CHAR_ANIM_BACKWARD_KB] = 'daisy_backward_kb',
[CHAR_ANIM_FIRST_PERSON] = 'daisy_first_person',
[CHAR_ANIM_FLUTTERKICK] = 'daisy_flutterkick',
[CHAR_ANIM_FLUTTERKICK_WITH_OBJ] = 'daisy_flutterkick_with_obj',
[CHAR_ANIM_FORWARD_KB] = 'daisy_forward_kb',
[CHAR_ANIM_GROUND_BONK] = 'daisy_ground_bonk',
[CHAR_ANIM_GROUND_KICK] = 'daisy_ground_kick',
[CHAR_ANIM_GROUND_THROW] = 'daisy_ground_throw',
[CHAR_ANIM_HEAVY_THROW] = 'daisy_heavy_throw',
[CHAR_ANIM_MISSING_CAP] = 'daisy_missing_cap',
[CHAR_ANIM_PULL_DOOR_WALK_IN] = 'daisy_pull_door_walk_in',
[CHAR_ANIM_FIRST_PERSON] = 'daisy_first_person',
[CHAR_ANIM_RELEASE_BOWSER] = 'daisy_release_bowser',
[CHAR_ANIM_RETURN_FROM_STAR_DANCE] = 'daisy_return_from_star_dance',
[CHAR_ANIM_RETURN_STAR_APPROACH_DOOR] = 'daisy_return_star_approach_door',
[CHAR_ANIM_SLIDEFLIP_LAND] = 'daisy_sideflip_land',
[CHAR_ANIM_SLEEP_IDLE] = 'daisy_sleep_idle',
[CHAR_ANIM_START_SLEEP_SITTING] = 'daisy_sleep_sitting',
[CHAR_ANIM_SOFT_BACK_KB] = 'daisy_soft_back_kb',
[CHAR_ANIM_SOFT_FRONT_KB] = 'daisy_soft_front_kb',
[CHAR_ANIM_STAR_DANCE] = 'daisy_star_dance',
[CHAR_ANIM_START_CROUCHING] = 'daisy_start_crouch',
[CHAR_ANIM_STOP_CROUCHING] = 'daisy_stop_crouch',
[CHAR_ANIM_START_SLEEP_IDLE] = 'daisy_start_sleep',
[CHAR_ANIM_STOP_SLIDE] = 'daisy_stop_slide',
[CHAR_ANIM_SUMMON_STAR] = 'daisy_summon_star',
[CHAR_ANIM_SWIM_WITH_OBJ_PART1] = 'daisy_swim_with_obj1',
[CHAR_ANIM_SWIM_WITH_OBJ_PART2] = 'daisy_swim_with_obj2',
[CHAR_ANIM_TRIPLE_JUMP_LAND] = 'daisy_triple_jump_land',
[CHAR_ANIM_TURNING_PART1] = 'daisy_turning_part1',
[CHAR_ANIM_TURNING_PART2] = 'daisy_turning_part2',
[CHAR_ANIM_TWIRL_LAND] = 'daisy_twirl_land',
[CHAR_ANIM_WAKE_FROM_LYING] = 'daisy_wake_from_lying',
[CHAR_ANIM_WAKE_FROM_SLEEP] = 'daisy_wake_from_sleep',
[CHAR_ANIM_CREDITS_RAISE_HAND] = 'daisy_credits_raise_hand',
[CHAR_ANIM_CREDITS_RETURN_FROM_LOOK_UP] = 'daisy_credits_return_from_look_up',
[CHAR_ANIM_CREDITS_START_WALK_LOOK_UP] = 'daisy_credits_start_walk_look_up',
[CHAR_ANIM_CREDITS_TAKE_OFF_CAP] = 'daisy_credits_take_off_cap',
[CHAR_ANIM_DYING_FALL_OVER] = 'daisy_dying_fall_over',
[CHAR_ANIM_FALL_OVER_BACKWARDS] = 'daisy_fall_over_backwards',
[CHAR_ANIM_FAST_LEDGE_GRAB] = 'daisy_fast_ledge_grab',
--[CHAR_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN] = 'daisy_final_bowser_raise_hand_spin',
[CHAR_ANIM_FIRST_PUNCH_FAST] = 'daisy_first_punch_fast',
[CHAR_ANIM_GENERAL_LAND] = 'daisy_general_land',
[CHAR_ANIM_HEAD_STUCK_IN_GROUND] = 'daisy_head_stuck_in_ground',
[CHAR_ANIM_LAND_FROM_DOUBLE_JUMP] = 'daisy_land_from_double_jump',
[CHAR_ANIM_LAND_FROM_SINGLE_JUMP] = 'daisy_land_from_single_jump',
[CHAR_ANIM_LAND_ON_STOMACH] = 'daisy_land_on_stomach',
[CHAR_ANIM_LEGS_STUCK_IN_GROUND] = 'daisy_legs_stuck_in_ground',
[CHAR_ANIM_PLACE_LIGHT_OBJ] = 'daisy_place_light_obj',
[CHAR_ANIM_PUSH_DOOR_WALK_IN] = 'daisy_push_door_walk_in',
[CHAR_ANIM_PUT_CAP_ON] = 'daisy_put_cap_on',
[CHAR_ANIM_RUN_WITH_LIGHT_OBJ] = 'daisy_run_with_light_obj',
[CHAR_ANIM_SECOND_PUNCH_FAST] = 'daisy_second_punch_fast',
[CHAR_ANIM_SHIVERING_RETURN_TO_IDLE] = 'daisy_shivering_returning_to_idle',
[CHAR_ANIM_SKID_ON_GROUND] = 'daisy_skid_on_ground',
[CHAR_ANIM_SLOW_LAND_FROM_DIVE] = 'daisy_slow_land_from_dive',
[CHAR_ANIM_SLOW_LEDGE_GRAB] = 'daisy_slow_ledge_grab',
[CHAR_ANIM_SLOW_WALK_WITH_LIGHT_OBJ] = 'daisy_slow_walk_with_light_obj',
[CHAR_ANIM_STAND_UP_FROM_LAVA_BOOST] = 'daisy_stand_up_from_lava_boost',
[CHAR_ANIM_STOP_SKID] = 'daisy_stop_skid',
[CHAR_ANIM_TAKE_CAP_OFF_THEN_ON] = 'daisy_take_cap_off_then_on',
[CHAR_ANIM_THROW_CATCH_KEY] = 'daisy_throw_catch_key',
[CHAR_ANIM_WALK_WITH_LIGHT_OBJ] = 'daisy_walk_with_light_obj',
[CHAR_ANIM_BOTTOM_STUCK_IN_GROUND] = 'daisy_bottom_stuck_in_ground',
--[CHAR_ANIM_CREDITS_PEACE_SIGN] = 'daisy_credits_peace_sign',
[CHAR_ANIM_FIRE_LAVA_BURN] = 'daisy_fire_lava_burn',
[CHAR_ANIM_GROUND_POUND] = 'daisy_ground_pound',
[CHAR_ANIM_GROUND_POUND_LANDING] = 'daisy_ground_pound_landing',
[CHAR_ANIM_TRIPLE_JUMP_GROUND_POUND] = 'daisy_triple_jump_ground_pound_anim',
[CHAR_ANIM_UNLOCK_DOOR] = 'daisy_unlock_door',
[CHAR_ANIM_SWINGING_BOWSER] = 'daisy_swinging_bowser',
[CHAR_ANIM_HOLDING_BOWSER] = 'daisy_holding_bowser',
[CHAR_ANIM_GRAB_BOWSER] = 'daisy_grab_bowser',
[CHAR_ANIM_BEND_KNESS_RIDING_SHELL] = 'daisy_dressjump',
ANIMTABLE_DAISY = {
[CHAR_ANIM_RUNNING] = "daisy_running",
[CHAR_ANIM_IDLE_HEAD_CENTER] = "daisy_idle_head_center",
[CHAR_ANIM_IDLE_HEAD_LEFT] = "daisy_idle_head_left",
[CHAR_ANIM_IDLE_HEAD_RIGHT] = "daisy_idle_head_right",
[CHAR_ANIM_BACKWARD_KB] = "daisy_backward_kb",
[CHAR_ANIM_FIRST_PERSON] = "daisy_first_person",
[CHAR_ANIM_FLUTTERKICK] = "daisy_flutterkick",
[CHAR_ANIM_FLUTTERKICK_WITH_OBJ] = "daisy_flutterkick_with_obj",
[CHAR_ANIM_FORWARD_KB] = "daisy_forward_kb",
[CHAR_ANIM_GROUND_BONK] = "daisy_ground_bonk",
[CHAR_ANIM_GROUND_KICK] = "daisy_ground_kick",
[CHAR_ANIM_GROUND_THROW] = "daisy_ground_throw",
[CHAR_ANIM_HEAVY_THROW] = "daisy_heavy_throw",
[CHAR_ANIM_MISSING_CAP] = "daisy_missing_cap",
[CHAR_ANIM_PULL_DOOR_WALK_IN] = "daisy_pull_door_walk_in",
[CHAR_ANIM_FIRST_PERSON] = "daisy_first_person",
[CHAR_ANIM_RELEASE_BOWSER] = "daisy_release_bowser",
[CHAR_ANIM_RETURN_FROM_STAR_DANCE] = "daisy_return_from_star_dance",
[CHAR_ANIM_RETURN_STAR_APPROACH_DOOR] = "daisy_return_star_approach_door",
[CHAR_ANIM_SLIDEFLIP_LAND] = "daisy_sideflip_land",
[CHAR_ANIM_SLEEP_IDLE] = "daisy_sleep_idle",
[CHAR_ANIM_START_SLEEP_SITTING] = "daisy_sleep_sitting",
[CHAR_ANIM_SOFT_BACK_KB] = "daisy_soft_back_kb",
[CHAR_ANIM_SOFT_FRONT_KB] = "daisy_soft_front_kb",
[CHAR_ANIM_STAR_DANCE] = "daisy_star_dance",
[CHAR_ANIM_START_CROUCHING] = "daisy_start_crouch",
[CHAR_ANIM_STOP_CROUCHING] = "daisy_stop_crouch",
[CHAR_ANIM_START_SLEEP_IDLE] = "daisy_start_sleep",
[CHAR_ANIM_STOP_SLIDE] = "daisy_stop_slide",
[CHAR_ANIM_SUMMON_STAR] = "daisy_summon_star",
[CHAR_ANIM_SWIM_WITH_OBJ_PART1] = "daisy_swim_with_obj1",
[CHAR_ANIM_SWIM_WITH_OBJ_PART2] = "daisy_swim_with_obj2",
[CHAR_ANIM_TRIPLE_JUMP_LAND] = "daisy_triple_jump_land",
[CHAR_ANIM_TURNING_PART1] = "daisy_turning_part1",
[CHAR_ANIM_TURNING_PART2] = "daisy_turning_part2",
[CHAR_ANIM_TWIRL_LAND] = "daisy_twirl_land",
[CHAR_ANIM_WAKE_FROM_LYING] = "daisy_wake_from_lying",
[CHAR_ANIM_WAKE_FROM_SLEEP] = "daisy_wake_from_sleep",
[CHAR_ANIM_CREDITS_RAISE_HAND] = "daisy_credits_raise_hand",
[CHAR_ANIM_CREDITS_RETURN_FROM_LOOK_UP] = "daisy_credits_return_from_look_up",
[CHAR_ANIM_CREDITS_START_WALK_LOOK_UP] = "daisy_credits_start_walk_look_up",
[CHAR_ANIM_CREDITS_TAKE_OFF_CAP] = "daisy_credits_take_off_cap",
[CHAR_ANIM_DYING_FALL_OVER] = "daisy_dying_fall_over",
[CHAR_ANIM_FALL_OVER_BACKWARDS] = "daisy_fall_over_backwards",
[CHAR_ANIM_FAST_LEDGE_GRAB] = "daisy_fast_ledge_grab",
-- [CHAR_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN] = "daisy_final_bowser_raise_hand_spin",
[CHAR_ANIM_FIRST_PUNCH_FAST] = "daisy_first_punch_fast",
[CHAR_ANIM_GENERAL_LAND] = "daisy_general_land",
[CHAR_ANIM_HEAD_STUCK_IN_GROUND] = "daisy_head_stuck_in_ground",
[CHAR_ANIM_LAND_FROM_DOUBLE_JUMP] = "daisy_land_from_double_jump",
[CHAR_ANIM_LAND_FROM_SINGLE_JUMP] = "daisy_land_from_single_jump",
[CHAR_ANIM_LAND_ON_STOMACH] = "daisy_land_on_stomach",
[CHAR_ANIM_LEGS_STUCK_IN_GROUND] = "daisy_legs_stuck_in_ground",
[CHAR_ANIM_PLACE_LIGHT_OBJ] = "daisy_place_light_obj",
[CHAR_ANIM_PUSH_DOOR_WALK_IN] = "daisy_push_door_walk_in",
[CHAR_ANIM_PUT_CAP_ON] = "daisy_put_cap_on",
[CHAR_ANIM_RUN_WITH_LIGHT_OBJ] = "daisy_run_with_light_obj",
[CHAR_ANIM_SECOND_PUNCH_FAST] = "daisy_second_punch_fast",
[CHAR_ANIM_SHIVERING_RETURN_TO_IDLE] = "daisy_shivering_returning_to_idle",
[CHAR_ANIM_SKID_ON_GROUND] = "daisy_skid_on_ground",
[CHAR_ANIM_SLOW_LAND_FROM_DIVE] = "daisy_slow_land_from_dive",
[CHAR_ANIM_SLOW_LEDGE_GRAB] = "daisy_slow_ledge_grab",
[CHAR_ANIM_SLOW_WALK_WITH_LIGHT_OBJ] = "daisy_slow_walk_with_light_obj",
[CHAR_ANIM_STAND_UP_FROM_LAVA_BOOST] = "daisy_stand_up_from_lava_boost",
[CHAR_ANIM_STOP_SKID] = "daisy_stop_skid",
[CHAR_ANIM_TAKE_CAP_OFF_THEN_ON] = "daisy_take_cap_off_then_on",
[CHAR_ANIM_THROW_CATCH_KEY] = "daisy_throw_catch_key",
[CHAR_ANIM_WALK_WITH_LIGHT_OBJ] = "daisy_walk_with_light_obj",
[CHAR_ANIM_BOTTOM_STUCK_IN_GROUND] = "daisy_bottom_stuck_in_ground",
-- [CHAR_ANIM_CREDITS_PEACE_SIGN] = "daisy_credits_peace_sign",
[CHAR_ANIM_FIRE_LAVA_BURN] = "daisy_fire_lava_burn",
[CHAR_ANIM_GROUND_POUND] = "daisy_ground_pound",
[CHAR_ANIM_GROUND_POUND_LANDING] = "daisy_ground_pound_landing",
[CHAR_ANIM_TRIPLE_JUMP_GROUND_POUND] = "daisy_triple_jump_ground_pound_anim",
[CHAR_ANIM_UNLOCK_DOOR] = "daisy_unlock_door",
[CHAR_ANIM_SWINGING_BOWSER] = "daisy_swinging_bowser",
[CHAR_ANIM_HOLDING_BOWSER] = "daisy_holding_bowser",
[CHAR_ANIM_GRAB_BOWSER] = "daisy_grab_bowser",
[CHAR_ANIM_BEND_KNESS_RIDING_SHELL] = "daisy_dressjump",
}
local PALETTE_DAISY = {
@ -151,56 +149,8 @@ local PALETTE_DAISY = {
[EMBLEM] = { r = 0x00, g = 0xFF, b = 0xFF }
}
CT_DAISY = _G.charSelect.character_add("Princess Daisy", "The ruler of the Sarasaland, a tomboyish princess who brings enthusiasm and energy to every adventure! Voiced by MorphiGalaxi", "Melzinoff & MorphiGalaxi", {r = 255, g = 97, b = 0}, E_MODEL_DAISY, CT_MARIO, TEX_DAISY)
-- _G.charSelect.character_add_caps(E_MODEL_DAISY, capDAISY)
_G.charSelect.character_add_voice(E_MODEL_DAISY, VOICETABLE_DAISY)
_G.charSelect.character_add_palette_preset(E_MODEL_DAISY, PALETTE_DAISY)
--- @param m MarioState
local function act_daisy_jump(m)
-- apply movement when using action
common_air_action_step(m, ACT_JUMP_LAND, CHAR_ANIM_BEND_KNESS_RIDING_SHELL, AIR_STEP_NONE)
-- setup when action starts (vertical speed and voiceline)
if m.actionTimer == 0 then
m.vel.y = 45
play_character_sound(m, CHAR_SOUND_HELLO)
end
set_mario_particle_flags(m, PARTICLE_LEAF, 0)
-- avoid issue with flying and then make the hover end after 2 secs or when stopping holding the button
if m.prevAction ~= ACT_TRIPLE_JUMP and (m.flags & MARIO_WING_CAP) ~= 0 then
if m.actionTimer >= 10 or (m.controller.buttonDown & A_BUTTON) == 0 then
set_mario_action(m, ACT_FREEFALL, 0)
end
else
if m.actionTimer >= 10 or (m.controller.buttonDown & A_BUTTON) == 0 then
set_mario_action(m, ACT_FREEFALL, 0)
end
end
-- increment the action timer to make the hover stop
m.actionTimer = m.actionTimer + 1
end
--- @param m MarioState
function daisy_update(m)
-- patch in custom animations
local anim = ANIMTABLE_DAISY[m.marioObj.header.gfx.animInfo.animID]
if anim ~= nil then
smlua_anim_util_set_animation(m.marioObj, anim)
end
if (m.input & INPUT_A_PRESSED) ~= 0 and m.vel.y < 10 and m.prevAction ~= ACT_DAISY_JUMP and (
m.action == ACT_JUMP or
m.action == ACT_DOUBLE_JUMP or
m.action == ACT_TRIPLE_JUMP or
m.action == ACT_BACKFLIP or
m.action == ACT_SIDE_FLIP) then
set_mario_action(m, ACT_DAISY_JUMP, 0)
set_mario_particle_flags(m, PARTICLE_LEAF, 0)
end
end
hook_mario_action(ACT_DAISY_JUMP, act_daisy_jump)
_G.CT_DAISY = charSelect.character_add("Princess Daisy", "The ruler of the Sarasaland, a tomboyish princess who brings enthusiasm and energy to every adventure! Voiced by MorphiGalaxi", "Melzinoff & MorphiGalaxi", {r = 255, g = 97, b = 0}, E_MODEL_DAISY, CT_MARIO, TEX_DAISY)
-- charSelect.character_add_caps(E_MODEL_DAISY, capDAISY)
charSelect.character_add_voice(E_MODEL_DAISY, VOICETABLE_DAISY)
charSelect.character_add_palette_preset(E_MODEL_DAISY, PALETTE_DAISY)
character_add_animations(CT_DAISY, ANIMTABLE_DAISY)

View file

@ -1,32 +1,2 @@
-- name: [CS] Extra Characters
-- description: [CS] Extra Characters\nBy Coop Deluxe Team\n\nThis Character Select pack adds other characters from the Mario series!
if not _G.charSelectExists then return end
--- @param m MarioState
local function mario_update(m)
if active_player(m) == 0 then return end
local voiceTable = _G.charSelect.character_get_voice(m)
if voiceTable == VOICETABLE_TOADETTE or voiceTable == VOICETABLE_PEACH or voiceTable == VOICETABLE_DAISY or voiceTable == VOICETABLE_YOSHI then
_G.charSelect.voice.snore(m)
end
if obj_has_model_extended(m.marioObj, E_MODEL_PEACH_PLAYER) ~= 0 then
peach_update(m)
elseif obj_has_model_extended(m.marioObj, E_MODEL_DAISY) ~= 0 then
daisy_update(m)
end
end
--- @param m MarioState
--- @param sound CharacterSound
local function character_sound(m, sound)
local voiceTable = _G.charSelect.character_get_voice(m)
if voiceTable == VOICETABLE_TOADETTE or voiceTable == VOICETABLE_PEACH or voiceTable == VOICETABLE_DAISY or voiceTable == VOICETABLE_YOSHI then
return _G.charSelect.voice.sound(m, sound)
end
end
hook_event(HOOK_MARIO_UPDATE, mario_update)
hook_event(HOOK_CHARACTER_SOUND, character_sound)
-- description: [CS] \\#fc03df\\Ext\\#ffc342\\ra \\#00ff00\\Chara\\#d60f6f\\cters\n\\#dcdcdc\\By Coop Deluxe Team\n\n\\#dcdcdc\\This Character Select pack adds other characters from the Mario series!\n\n\\#ff6868\\Model Credits:\n\\\#dcdcdc\\FluffaMario\nAngelicMiracles "Yuyake"\nMelzinoff\nThatGurlTilly\n\n\\#00ff00\\Voice Actors:\n\\#dcdcdc\\MelissaMekrose\nSuperKirbyLover\nMorphiGalaxi\nAngelicMiracles "Yuyake"\nRihannaDeleon\n\n\\#ff6868\\Requires \\00ff00\\Character Select \\#ff6868\\enabled!

View file

@ -4,8 +4,6 @@ E_MODEL_PEACH_PLAYER = smlua_model_util_get_id("peach_player_geo")
local TEX_PEACH = get_texture_info("peach_player_icon")
ACT_PEACH_FLOAT = allocate_mario_action(ACT_GROUP_AIRBORNE | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_MOVING)
VOICETABLE_PEACH = {
[CHAR_SOUND_ATTACKED] = "peach_attacked.ogg",
[CHAR_SOUND_COUGHING1] = "peach_coughing1.ogg",
@ -151,61 +149,8 @@ local PALETTE_PEACH = {
[EMBLEM] = { r = 0x00, g = 0x82, b = 0xFF }
}
CT_PEACH = _G.charSelect.character_add("Princess Peach", "The ruler of the Mushroom Kingdom, always ready to help Mario in his adventures and save her kingdom from the evil clutches of King Bowser! Voiced by SuperKirbyLover", "Melzinoff & SuperKirbyLover", {r = 239, g = 128, b = 177}, E_MODEL_PEACH_PLAYER, CT_MARIO, TEX_PEACH)
-- _G.charSelect.character_add_caps(E_MODEL_PEACH, capPEACH)
_G.charSelect.character_add_voice(E_MODEL_PEACH_PLAYER, VOICETABLE_PEACH)
_G.charSelect.character_add_palette_preset(E_MODEL_PEACH_PLAYER, PALETTE_PEACH)
--- @param m MarioState
local function act_peach_float(m)
-- apply movement when using action
common_air_action_step(m, ACT_JUMP_LAND, CHAR_ANIM_BEND_KNESS_RIDING_SHELL, AIR_STEP_NONE)
-- setup when action starts (horizontal speed and voiceline)
if m.actionTimer == 0 then
if m.forwardVel > 20 then
mario_set_forward_vel(m, 20)
end
play_character_sound(m, CHAR_SOUND_HELLO)
end
-- block all y movement when using the move
m.vel.y = 0
set_mario_particle_flags(m, PARTICLE_SPARKLES, 0)
-- avoid issue with flying and then make the hover end after 2 secs or when stopping holding the button
if m.prevAction ~= ACT_TRIPLE_JUMP and (m.flags & MARIO_WING_CAP) ~= 0 then
if m.actionTimer >= 50 or (m.controller.buttonDown & A_BUTTON) == 0 then
set_mario_action(m, ACT_FREEFALL, 0)
end
else
if m.actionTimer >= 50 or (m.controller.buttonDown & A_BUTTON) == 0 then
set_mario_action(m, ACT_FREEFALL, 0)
end
end
-- increment the action timer to make the hover stop
m.actionTimer = m.actionTimer + 1
end
--- @param m MarioState
function peach_update(m)
-- patch in custom animations
local anim = ANIMTABLE_PEACH[m.marioObj.header.gfx.animInfo.animID]
if anim ~= nil then
smlua_anim_util_set_animation(m.marioObj, anim)
end
if (m.input & INPUT_A_DOWN) ~= 0 and m.vel.y < -15 and m.prevAction ~= ACT_PEACH_FLOAT and (
m.action == ACT_JUMP or
m.action == ACT_DOUBLE_JUMP or
m.action == ACT_TRIPLE_JUMP or
m.action == ACT_LONG_JUMP or
m.action == ACT_BACKFLIP or
m.action == ACT_SIDE_FLIP or
m.action == ACT_WALL_KICK_AIR) then
set_mario_action(m, ACT_PEACH_FLOAT, 0)
end
end
hook_mario_action(ACT_PEACH_FLOAT, act_peach_float)
_G.CT_PEACH = charSelect.character_add("Princess Peach", "The ruler of the Mushroom Kingdom, always ready to help Mario in his adventures and save her kingdom from the evil clutches of King Bowser! Voiced by SuperKirbyLover", "Melzinoff & SuperKirbyLover", {r = 239, g = 128, b = 177}, E_MODEL_PEACH_PLAYER, CT_MARIO, TEX_PEACH)
-- charSelect.character_add_caps(E_MODEL_PEACH, capPEACH)
charSelect.character_add_voice(E_MODEL_PEACH_PLAYER, VOICETABLE_PEACH)
charSelect.character_add_palette_preset(E_MODEL_PEACH_PLAYER, PALETTE_PEACH)
character_add_animations(CT_PEACH, ANIMTABLE_PEACH)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more