1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-06-28 21:07:12 -07:00

use radio buttons for MM transformations

This commit is contained in:
Connor Olding 2015-05-26 10:44:34 -07:00
parent 307e3ac751
commit b6b224f580

View File

@ -15,14 +15,15 @@ function Passive:init(...)
table.insert(passives, self) table.insert(passives, self)
end end
function Passive:tick() function Passive:tick()
if self.state then self:tick_on() end
end
function Passive:tick_on()
end end
local levitate = Passive() local levitate = Passive()
function levitate:tick() function levitate:tick_on()
if self.state then if bit.band(addrs.buttons(), 0x20) > 0 then
if bit.band(addrs.buttons(), 0x20) > 0 then self:hold()
self:hold()
end
end end
end end
function levitate:hold() function levitate:hold()
@ -30,11 +31,9 @@ function levitate:hold()
end end
local supersonic = Passive() local supersonic = Passive()
function supersonic:tick() function supersonic:tick_on()
if self.state then if bit.band(addrs.buttons(), 0x8000) > 0 then
if bit.band(addrs.buttons(), 0x8000) > 0 then self:hold()
self:hold()
end
end end
end end
function supersonic:hold() function supersonic:hold()
@ -52,45 +51,43 @@ function self_destruct:on()
end end
local playas_child = Passive() local playas_child = Passive()
function playas_child:tick() function playas_child:tick_on()
if self.state then addrs.age_modifier_global(1)
addrs.age_modifier_global(1)
end
end end
local playas_adult = Passive() local playas_adult = Passive()
function playas_adult:tick() function playas_adult:tick_on()
if self.state then addrs.age_modifier_global(0)
addrs.age_modifier_global(0)
end
end end
local playas_human = Callbacks() local PassiveResetMask = Class(Passive)
function playas_human:on() function PassiveResetMask:on()
Passive.on(self)
addrs.mask_worn(0) addrs.mask_worn(0)
end
local playas_human = PassiveResetMask()
function playas_human:tick_on()
addrs.transformation(4) addrs.transformation(4)
end end
local playas_deku = Callbacks() local playas_deku = PassiveResetMask()
function playas_deku:on() function playas_deku:tick_on()
addrs.mask_worn(0)
addrs.transformation(3) addrs.transformation(3)
end end
local playas_goron = Callbacks() local playas_goron = PassiveResetMask()
function playas_goron:on() function playas_goron:tick_on()
addrs.mask_worn(0)
addrs.transformation(1) addrs.transformation(1)
end end
local playas_zora = Callbacks() local playas_zora = PassiveResetMask()
function playas_zora:on() function playas_zora:tick_on()
addrs.mask_worn(0)
addrs.transformation(2) addrs.transformation(2)
end end
local playas_fd = Callbacks() local playas_fd = PassiveResetMask()
function playas_fd:on() function playas_fd:tick_on()
addrs.mask_worn(0)
addrs.transformation(0) addrs.transformation(0)
end end
local playas_group = {} local playas_group = {}
local playas_mm_group = {}
local playas_menu = oot and Menu{ local playas_menu = oot and Menu{
Screen{ Screen{
@ -103,11 +100,12 @@ local playas_menu = oot and Menu{
} or Menu{ } or Menu{
Screen{ Screen{
Text("Play as..."), Text("Play as..."),
Oneshot("Human Link", playas_human), Radio("Default", playas_mm_group, dummy),
Oneshot("Deku Link", playas_deku), Radio("Human Link", playas_mm_group, playas_human),
Oneshot("Goron Link", playas_goron), Radio("Deku Link", playas_mm_group, playas_deku),
Oneshot("Zora Link", playas_zora), Radio("Goron Link", playas_mm_group, playas_goron),
Oneshot("Fierce Deity", playas_fd), Radio("Zora Link", playas_mm_group, playas_zora),
Radio("Fierce Deity", playas_mm_group, playas_fd),
Back(), Back(),
}, },
} }