Add content warning
This commit is contained in:
parent
dd46a76f54
commit
e3bc5a0dc6
@ -136,10 +136,10 @@ function cursor:draw_at(l,i)
|
|||||||
local x,y=l:place_card(i)
|
local x,y=l:place_card(i)
|
||||||
local card_fg=self.ruleset.deck:draw_card(x,y,card,{rotate=l.rotated})
|
local card_fg=self.ruleset.deck:draw_card(x,y,card,{rotate=l.rotated})
|
||||||
local fg=card_fg
|
local fg=card_fg
|
||||||
draw_layout_hint(l,i,9,false,0,0)
|
draw_layout_hint(l,i,9,false)
|
||||||
else
|
else
|
||||||
local filled=false
|
local filled=false
|
||||||
if (i<1) i=1 filled=true
|
if (i<1) i=1 filled=true
|
||||||
draw_layout_hint(l,i,12,filled,0,0)
|
draw_layout_hint(l,i,12,filled)
|
||||||
end
|
end
|
||||||
end
|
end
|
@ -1,8 +1,6 @@
|
|||||||
function draw_layout_hint(l,i,fg,filled,dx,dy)
|
function draw_layout_hint(l,i,fg,filled,tut_border)
|
||||||
-- layout, index
|
-- layout, index
|
||||||
local x,y=l:place_card(i)
|
local x,y=l:place_card(i)
|
||||||
x+=dx
|
|
||||||
y+=dy
|
|
||||||
|
|
||||||
if (l.obscured) filled=false
|
if (l.obscured) filled=false
|
||||||
if filled then
|
if filled then
|
||||||
@ -12,10 +10,28 @@ function draw_layout_hint(l,i,fg,filled,dx,dy)
|
|||||||
rectfill(x,y,x+8,y+15,fg)
|
rectfill(x,y,x+8,y+15,fg)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
if tut_border then
|
||||||
|
local exclude=1+flr(time()*3)%3
|
||||||
|
pal(1,14)
|
||||||
|
pal(2,14)
|
||||||
|
pal(3,14)
|
||||||
|
palt(13,true)
|
||||||
|
pal(exclude,13)
|
||||||
|
if l.rotated then
|
||||||
|
spr(32,x-5,y+5,3,2)
|
||||||
|
else
|
||||||
|
-- rect(x-3,y-3,x+11,y+18,13)
|
||||||
|
spr(14,x-2,y-2,2,3)
|
||||||
|
end
|
||||||
|
pal()
|
||||||
|
palt()
|
||||||
|
return
|
||||||
|
end
|
||||||
if l.rotated then
|
if l.rotated then
|
||||||
rect(x-4,y+6,x+13,y+16,fg)
|
rect(x-4,y+6,x+13,y+16,fg)
|
||||||
else
|
else
|
||||||
rect(x-1,y-1,x+9,y+16,fg)
|
rect(x-1,y-1,x+9,y+16,fg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
2
main.lua
2
main.lua
@ -12,7 +12,7 @@ function main:init()
|
|||||||
self.state_manager:push(state_wonround:new(b))
|
self.state_manager:push(state_wonround:new(b))
|
||||||
]]
|
]]
|
||||||
|
|
||||||
if (completion_tracker:should_show_tutorial()) self.state_manager:push(state_ironman:new(tutorial))
|
if (completion_tracker:should_show_tutorial()) self.state_manager:push(state_ironman:new(tutorial)) self.state_manager:push(state_content_warning:new())
|
||||||
end
|
end
|
||||||
|
|
||||||
function main:update()
|
function main:update()
|
||||||
|
59
main.p8
59
main.p8
@ -24,6 +24,7 @@ __lua__
|
|||||||
#include seeds.lua
|
#include seeds.lua
|
||||||
#include sounds.lua
|
#include sounds.lua
|
||||||
#include state_archaeology.lua
|
#include state_archaeology.lua
|
||||||
|
#include state_content_warning.lua
|
||||||
#include state_excavate_menu.lua
|
#include state_excavate_menu.lua
|
||||||
#include state_manager.lua
|
#include state_manager.lua
|
||||||
#include state_menu.lua
|
#include state_menu.lua
|
||||||
@ -44,35 +45,35 @@ for i=1,10 do
|
|||||||
end
|
end
|
||||||
stop()]]
|
stop()]]
|
||||||
__gfx__
|
__gfx__
|
||||||
00000000000000000000000000000000777770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000077777000000000000000000000000000000000000000000000000000000000000000000000000000ddddddddddddd000
|
||||||
00000000007000000777000000070000700070000707070000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
0000000000700000077700000007000070007000070707000000000000000000000000000000000000000000000000000000000000000000d31231231231d000
|
||||||
07070000007000000777000000700000707070000077770000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
0707000000700000077700000070000070707000007777000000000000000000000000000000000000000000000000000000000000000000d20000000002d000
|
||||||
00700000007000000777000000700000707070000770700000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
0070000000700000077700000070000070707000077070000000000000000000000000000000000000000000000000000000000000000000d10000000003d000
|
||||||
07070000077700000070000007000000777070000077777000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
0707000007770000007000000700000077707000007777700000000000000000000000000000000000000000000000000000000000000000d30000000001d000
|
||||||
00000000007000000777000007000000700070000700777000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
0000000000700000077700000700000070007000070077700000000000000000000000000000000000000000000000000000000000000000d20000000002d000
|
||||||
00000000000000000000000000000000707770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000070777000000000000000000000000000000000000000000000000000000000000000000000000000d10000000003d000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d30000000001d000
|
||||||
00000000000000000000000000000000000000000000000000000000000070000000700000007000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000007000000070000000700000000000000000000000000000000000d20000000002d000
|
||||||
00000000000070000000700000700070007000700070007000700070007000700070007000700070070707000707070007070700000000000000000000000000
|
0000000000007000000070000070007000700070007000700070007000700070007000700070007007070700070707000707070000000000d10000000003d000
|
||||||
00000000000000000000000000000000000000000000000000000000000070000000700000007000007777000077770000777700000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000007000000070000000700000777700007777000077770000000000d30000000001d000
|
||||||
00007000000000000000700000000000000070000070007000707070000000000070007000700070077070000770700007707000000000000000000000000000
|
0000700000000000000070000000000000007000007000700070707000000000007000700070007007707000077070000770700000000000d20000000002d000
|
||||||
00000000000000000000000000000000000000000000000000000000000070000000000000007000007777700077777000777770000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000007000000000000000700000777770007777700077777000000000d10000000003d000
|
||||||
00000000000070000000700000700070007000700070007000700070007000700070007000700070070077700700777007007770000000000000000000000000
|
0000000000007000000070000070007000700070007000700070007000700070007000700070007007007770070077700700777000000000d30000000001d000
|
||||||
00000000000000000000000000000000000000000000000000000000000070000000700000007000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000007000000070000000700000000000000000000000000000000000d20000000002d000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d10000000003d000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
dddddddddddddddddddd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d30000000001d000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d123123123123123123d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d20000000002d000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d300000000000000001d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d13213213213d000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d200000000000000002d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddddddddddddd000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d100000000000000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d300000000000000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d200000000000000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d100000000000000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d300000000000000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d200000000000000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d100000000000000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
d321321321321321321d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
dddddddddddddddddddd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
music_manager={}
|
music_manager={}
|
||||||
add(modules,music_manager)
|
add(modules,music_manager)
|
||||||
function music_manager:init()
|
function music_manager:init()
|
||||||
|
self._allow=true
|
||||||
|
end
|
||||||
|
function music_manager:allow(a)
|
||||||
|
self._allow=a
|
||||||
end
|
end
|
||||||
function music_manager:update()
|
function music_manager:update()
|
||||||
|
if (not self._allow) music(-1,0) return
|
||||||
local is_playing = stat(54) != -1
|
local is_playing = stat(54) != -1
|
||||||
local should_be_playing = completion_tracker:get_music_preference()
|
local should_be_playing = completion_tracker:get_music_preference()
|
||||||
if (is_playing and not should_be_playing) music(-1,500)
|
if (is_playing and not should_be_playing) music(-1,500)
|
||||||
|
42
state_content_warning.lua
Normal file
42
state_content_warning.lua
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
state_content_warning=klass()
|
||||||
|
function state_content_warning:init(prior_menu)
|
||||||
|
self.prior_menu=prior_menu
|
||||||
|
self.frame=0
|
||||||
|
self.frames=4
|
||||||
|
self.progress=0
|
||||||
|
end
|
||||||
|
function state_content_warning:enter() music_manager:allow(false) end
|
||||||
|
function state_content_warning:exit(new_top) music_manager:allow(true) end
|
||||||
|
|
||||||
|
function state_content_warning:reenter() end
|
||||||
|
function state_content_warning:suspend() end
|
||||||
|
function state_content_warning:update()
|
||||||
|
for i=0,6 do
|
||||||
|
if (btnp(i)) self.done=true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function state_content_warning:draw()
|
||||||
|
cls(0)
|
||||||
|
print([[
|
||||||
|
raven's rood explores post-
|
||||||
|
colonial subject matter,
|
||||||
|
including violent conflict
|
||||||
|
leading to genocide.
|
||||||
|
|
||||||
|
these themes are artistically
|
||||||
|
essential and inseparable from
|
||||||
|
the overall content of the game.
|
||||||
|
|
||||||
|
we understand all games are not
|
||||||
|
suitable for every individual.
|
||||||
|
we hope you enjoy our game
|
||||||
|
despite the bleak nature of its
|
||||||
|
subject matter.
|
||||||
|
|
||||||
|
once you continue, the tutorial
|
||||||
|
will begin, and you will not
|
||||||
|
encounter this message again.
|
||||||
|
]],2,2,6)
|
||||||
|
|
||||||
|
print("🅾️ continue",2,121,15)
|
||||||
|
end
|
32
tutorial.lua
32
tutorial.lua
@ -3,32 +3,32 @@ tutorial={
|
|||||||
-- function() return watcher:new(progression[6]) end,
|
-- function() return watcher:new(progression[6]) end,
|
||||||
function()
|
function()
|
||||||
return watcher:new(progression[1], 10,{
|
return watcher:new(progression[1], 10,{
|
||||||
tutorial_grab:new(1,4),
|
tutorial_grab:new(1,4,"stack cards ascending..."),
|
||||||
tutorial_grab:new(5,1),
|
tutorial_grab:new(5,1,"... or descending."),
|
||||||
tutorial_grab:new(4,3),
|
tutorial_grab:new(4,3),
|
||||||
tutorial_grab:new(2,4),
|
tutorial_grab:new(2,4,"fill the wells."),
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
function()
|
function()
|
||||||
return watcher:new(progression[2], 10,{
|
return watcher:new(progression[2], 10,{
|
||||||
tutorial_grab:new(1,6),
|
tutorial_grab:new(1,6,"use the extra slot."),
|
||||||
tutorial_grab:new(1,2),
|
tutorial_grab:new(1,2,"it blocks the wells."),
|
||||||
tutorial_grab:new(1,5),
|
tutorial_grab:new(1,5,"it blocks the wells."),
|
||||||
tutorial_grab:new(1,5),
|
tutorial_grab:new(1,5,"it blocks the wells."),
|
||||||
tutorial_grab:new(2,1),
|
tutorial_grab:new(2,1,"it blocks the wells."),
|
||||||
tutorial_grab:new(2,1),
|
tutorial_grab:new(2,1,"it blocks the wells."),
|
||||||
tutorial_grab:new(6,1),
|
tutorial_grab:new(6,1,"drag it down."),
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
function()
|
function()
|
||||||
return watcher:new(progression[3],3,{
|
return watcher:new(progression[3],3,{
|
||||||
tutorial_grab:new(7,6),
|
tutorial_grab:new(7,6,"here are more cards."),
|
||||||
tutorial_undo:new(),
|
tutorial_undo:new("undo. (or hold to restart.)"),
|
||||||
tutorial_grab:new(6,7),
|
tutorial_grab:new(6,7),
|
||||||
tutorial_grab:new(6,8),
|
tutorial_grab:new(6,8,"they have their own well."),
|
||||||
tutorial_grab:new(2,6),
|
tutorial_grab:new(2,6,"it can't be blocked."),
|
||||||
tutorial_grab:new(2,4),
|
tutorial_grab:new(2,4,"stack ascending or descending."),
|
||||||
tutorial_grab:new(3,1),
|
tutorial_grab:new(3,1,"collect the last scroll\nto read it!"),
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
standard_watcher_cb(4),
|
standard_watcher_cb(4),
|
||||||
|
25
watcher.lua
25
watcher.lua
@ -28,16 +28,25 @@ function watcher:draw(board)
|
|||||||
x+=1
|
x+=1
|
||||||
y+=20
|
y+=20
|
||||||
local lx=x+3
|
local lx=x+3
|
||||||
line(lx,y-4,lx,y,15)
|
|
||||||
rectfill(x-2,y-2,x+w,y+h,1)
|
rectfill(x-2,y-2,x+w,y+h,1)
|
||||||
rect(x-2,y-2,x+w,y+h,15)
|
rect(x-2,y-2,x+w,y+h,15)
|
||||||
print(text,x,y,15)
|
print(text,x,y,15)
|
||||||
|
|
||||||
|
local note=stage.note
|
||||||
|
if (not note) return
|
||||||
|
local w,h=measure_text(note)
|
||||||
|
local x=64-w\2
|
||||||
|
local y=88
|
||||||
|
rectfill(x-1,y-1,x+w-1,y+h-1,1)
|
||||||
|
rect(x-2,y-2,x+w,y+h,15)
|
||||||
|
print(note,x,y,15)
|
||||||
end
|
end
|
||||||
|
|
||||||
tutorial_grab=klass()
|
tutorial_grab=klass()
|
||||||
function tutorial_grab:init(src,dst)
|
function tutorial_grab:init(src,dst,note)
|
||||||
self.src=src
|
self.src=src
|
||||||
self.dst=dst
|
self.dst=dst
|
||||||
|
self.note=note
|
||||||
end
|
end
|
||||||
|
|
||||||
function tutorial_grab:active()
|
function tutorial_grab:active()
|
||||||
@ -50,16 +59,16 @@ function tutorial_grab:intercept(x, slot)
|
|||||||
end
|
end
|
||||||
function tutorial_grab:draw(board,layouts)
|
function tutorial_grab:draw(board,layouts)
|
||||||
local layout,i,text
|
local layout,i,text
|
||||||
if board.cursor:acceptance_state() == acceptance_state.not_grabbed then
|
if board.cursor:grabbed_card() == nil then
|
||||||
-- show a hint for grabbing
|
-- show a hint for grabbing
|
||||||
layout=layouts:slot(self.src)
|
layout=layouts:slot(self.src)
|
||||||
i=#board.slots[self.src].contents
|
i=#board.slots[self.src].contents
|
||||||
draw_layout_hint(layout,i,15,false,0,0)
|
draw_layout_hint(layout,i,15,false,true)
|
||||||
text="🅾️"
|
text="🅾️"
|
||||||
else
|
else
|
||||||
layout=layouts:slot(self.dst)
|
layout=layouts:slot(self.dst)
|
||||||
i=#board.slots[self.dst].contents+1
|
i=#board.slots[self.dst].contents+1
|
||||||
draw_layout_hint(layout,i,15,false,0,0)
|
draw_layout_hint(layout,i,15,false,true)
|
||||||
text="🅾️"
|
text="🅾️"
|
||||||
end
|
end
|
||||||
return layout,i,text
|
return layout,i,text
|
||||||
@ -67,7 +76,9 @@ end
|
|||||||
|
|
||||||
|
|
||||||
tutorial_undo=klass()
|
tutorial_undo=klass()
|
||||||
function tutorial_undo:init() end
|
function tutorial_undo:init(note)
|
||||||
|
self.note=note
|
||||||
|
end
|
||||||
function tutorial_undo:active()
|
function tutorial_undo:active()
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
@ -77,7 +88,7 @@ end
|
|||||||
function tutorial_undo:draw(board,layouts)
|
function tutorial_undo:draw(board,layouts)
|
||||||
local layout,i,text
|
local layout,i,text
|
||||||
layout=layouts:checkpoint()
|
layout=layouts:checkpoint()
|
||||||
draw_layout_hint(layout,0,15,false,0,0)
|
draw_layout_hint(layout,0,15,false,true)
|
||||||
text="❎"
|
text="❎"
|
||||||
return layout,i,text
|
return layout,i,text
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user