marisa laser revamped
also added fullscreen config option
|
@ -14,6 +14,7 @@ key_shot = z
|
|||
# key_shot = y # if you are qwertz-fag
|
||||
key_bomb = x
|
||||
|
||||
fullscreen = 0
|
||||
|
||||
# activate this for the intel-graphics crapbox at your workplace
|
||||
# won't look as good as you expect it to do, but should run.
|
||||
|
|
BIN
gfx/part/marilaser_part0.png
Normal file
After Width: | Height: | Size: 365 B |
83
gfx/part/marilaser_part0.svg
Normal file
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="12.260488"
|
||||
height="17.095419"
|
||||
id="svg3920"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
inkscape:export-filename="/home/laochailan/src/taisei/gfx/part/marilaser_part0.png"
|
||||
inkscape:export-xdpi="104.20562"
|
||||
inkscape:export-ydpi="104.20562"
|
||||
sodipodi:docname="marilaser_part0.svg">
|
||||
<defs
|
||||
id="defs3922">
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
id="filter4463"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="0.11800381"
|
||||
id="feGaussianBlur4465" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="47.137155"
|
||||
inkscape:cx="2.3116009"
|
||||
inkscape:cy="8.5101465"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1039"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="-2"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata3925">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0.41595824,-363.81447)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.4252522;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 5.714286,364.9846 5.080582,5.08055 -5.080582,5.08055 -5.08058216,-5.08055 z"
|
||||
id="path3811" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.4252522;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 5.714286,369.57857 5.080582,5.08064 -5.080582,5.08055 -5.08058216,-5.08055 z"
|
||||
id="path4004" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
BIN
gfx/proj/marilaser.png
Normal file
After Width: | Height: | Size: 195 B |
280
gfx/proj/marilaser.svg
Normal file
|
@ -0,0 +1,280 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="11.194386"
|
||||
height="80"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="marilaser.svg"
|
||||
inkscape:export-filename="/home/laochailan/src/taisei/gfx/proj/marilaser.png"
|
||||
inkscape:export-xdpi="92.25"
|
||||
inkscape:export-ydpi="92.25">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient3797">
|
||||
<stop
|
||||
style="stop-color:#ff6067;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3799" />
|
||||
<stop
|
||||
id="stop3805"
|
||||
offset="0.43264624"
|
||||
style="stop-color:#3f6cf4;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#ff6067;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3801" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3776">
|
||||
<stop
|
||||
style="stop-color:#ff7171;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3778" />
|
||||
<stop
|
||||
id="stop3786"
|
||||
offset="0.5"
|
||||
style="stop-color:#7e87ff;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#86f396;stop-opacity:1;"
|
||||
offset="0.75"
|
||||
id="stop3790" />
|
||||
<stop
|
||||
style="stop-color:#f8ff51;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3780" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3765">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3767" />
|
||||
<stop
|
||||
style="stop-color:#ff0000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3769" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3765"
|
||||
id="linearGradient3771"
|
||||
x1="7.9816217"
|
||||
y1="1021.7631"
|
||||
x2="8.1289949"
|
||||
y2="1050.1503"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3765"
|
||||
id="linearGradient3798"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="7.9816217"
|
||||
y1="1021.7631"
|
||||
x2="8.1289949"
|
||||
y2="1065.6782" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3776"
|
||||
id="linearGradient3801"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="727.62115"
|
||||
y1="716.18787"
|
||||
x2="757.54218"
|
||||
y2="746.35284" />
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
id="filter4668"
|
||||
x="-0.61853755"
|
||||
width="2.2370751"
|
||||
y="-0.02166328"
|
||||
height="1.0433266"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="0.63926099"
|
||||
id="feGaussianBlur4670" />
|
||||
</filter>
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
id="filter4680"
|
||||
x="-0.1773141"
|
||||
width="1.3546282"
|
||||
y="-0.0062101404"
|
||||
height="1.0124203"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="0.18325482"
|
||||
id="feGaussianBlur4682" />
|
||||
</filter>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3776"
|
||||
id="linearGradient4008"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="727.62115"
|
||||
y1="716.18787"
|
||||
x2="757.54218"
|
||||
y2="746.35284" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3765"
|
||||
id="linearGradient4010"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="7.9816217"
|
||||
y1="1021.7631"
|
||||
x2="8.1289949"
|
||||
y2="1065.6782" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3776"
|
||||
id="linearGradient4017"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="727.62115"
|
||||
y1="716.18787"
|
||||
x2="757.54218"
|
||||
y2="746.35284" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3776"
|
||||
id="linearGradient4023"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="727.62115"
|
||||
y1="716.18787"
|
||||
x2="757.54218"
|
||||
y2="746.35284" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3765"
|
||||
id="linearGradient4025"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="7.9816217"
|
||||
y1="1021.7631"
|
||||
x2="8.1289949"
|
||||
y2="1065.6782" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3776"
|
||||
id="linearGradient4037"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="727.62115"
|
||||
y1="716.18787"
|
||||
x2="757.54218"
|
||||
y2="746.35284" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3765"
|
||||
id="linearGradient4039"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="7.9816217"
|
||||
y1="1021.7631"
|
||||
x2="8.1289949"
|
||||
y2="1065.6782" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3776"
|
||||
id="linearGradient4042"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="727.62115"
|
||||
y1="716.18787"
|
||||
x2="757.54218"
|
||||
y2="746.35284"
|
||||
gradientTransform="matrix(0.85470782,0.85470782,-0.85470782,0.85470782,-1.6699256,-241.42496)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3776"
|
||||
id="linearGradient4044"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="727.62115"
|
||||
y1="716.18787"
|
||||
x2="757.54218"
|
||||
y2="746.35284" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3765"
|
||||
id="linearGradient4046"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="7.9816217"
|
||||
y1="1021.7631"
|
||||
x2="8.1289949"
|
||||
y2="1065.6782" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3776"
|
||||
id="linearGradient4049"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="727.62115"
|
||||
y1="716.18787"
|
||||
x2="757.54218"
|
||||
y2="746.35284"
|
||||
gradientTransform="matrix(0.85470782,0.85470782,-0.85470782,0.85470782,-1.6699256,-311.42496)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#5a5a5a"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="4.384062"
|
||||
inkscape:cx="-35.45984"
|
||||
inkscape:cy="47.514747"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1039"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="-2"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-2.4028067,-976.44242)">
|
||||
<g
|
||||
id="g3761"
|
||||
transform="translate(-8.6162061e-6,-0.71894668)"
|
||||
style="stroke:url(#linearGradient3771)" />
|
||||
<path
|
||||
id="rect4006"
|
||||
style="opacity:0.37007877;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter4680)"
|
||||
d="m 6.7597957,948.75771 2.4804093,0 0,70.82149 -2.4804093,0 z m 0,69.99999 2.4804093,0 0,70.8215 -2.4804093,0 z"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(1,0,0,0.62629422,0,380.86915)" />
|
||||
<path
|
||||
id="rect4000"
|
||||
style="opacity:0.37007877;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter4668)"
|
||||
d="m 6.7597957,914.08667 2.4804093,0 0,70.82151 -2.4804093,0 z m 0,70 2.4804093,0 0,70.82153 -2.4804093,0 z"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(2.0174202,0,0,0.62629422,-8.1393623,402.58343)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.2 KiB |
|
@ -10,121 +10,80 @@
|
|||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="11.29844"
|
||||
height="70.821518"
|
||||
width="11.308966"
|
||||
height="37.608253"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="marisa.svg"
|
||||
inkscape:export-filename="/home/laochailan/src/taisei/gfx/proj/marisa.png"
|
||||
inkscape:export-xdpi="104.20562"
|
||||
inkscape:export-ydpi="104.20562">
|
||||
inkscape:export-xdpi="119.96432"
|
||||
inkscape:export-ydpi="119.96432">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient3776">
|
||||
id="linearGradient3780">
|
||||
<stop
|
||||
style="stop-color:#ff7171;stop-opacity:1;"
|
||||
style="stop-color:#b1ffbd;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3778" />
|
||||
id="stop3782" />
|
||||
<stop
|
||||
id="stop3786"
|
||||
offset="0.5"
|
||||
style="stop-color:#7e87ff;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#86f396;stop-opacity:1;"
|
||||
offset="0.75"
|
||||
id="stop3790" />
|
||||
<stop
|
||||
style="stop-color:#f8ff51;stop-opacity:1;"
|
||||
style="stop-color:#76ff8a;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3780" />
|
||||
id="stop3784" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3765">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3767" />
|
||||
<stop
|
||||
style="stop-color:#ff0000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3769" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3765"
|
||||
id="linearGradient3771"
|
||||
x1="7.9816217"
|
||||
y1="1021.7631"
|
||||
x2="8.1289949"
|
||||
y2="1050.1503"
|
||||
xlink:href="#linearGradient3780"
|
||||
id="radialGradient3786"
|
||||
cx="8.0484552"
|
||||
cy="1037.1095"
|
||||
fx="8.0484552"
|
||||
fy="1037.1095"
|
||||
r="5.2515612"
|
||||
gradientTransform="matrix(1,0,0,2.196842,0,-1245.389)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3765"
|
||||
id="linearGradient3798"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="7.9816217"
|
||||
y1="1021.7631"
|
||||
x2="8.1289949"
|
||||
y2="1065.6782" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3776"
|
||||
id="linearGradient3801"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="727.62115"
|
||||
y1="716.18787"
|
||||
x2="757.54218"
|
||||
y2="746.35284" />
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
id="filter4668"
|
||||
x="-0.61853757"
|
||||
width="2.2370751"
|
||||
y="-0.02166328"
|
||||
height="1.0433266">
|
||||
id="filter3831"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="0.63926099"
|
||||
id="feGaussianBlur4670" />
|
||||
stdDeviation="0.16788411"
|
||||
id="feGaussianBlur3833" />
|
||||
</filter>
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
id="filter4680"
|
||||
x="-0.1773141"
|
||||
width="1.3546282"
|
||||
y="-0.0062101403"
|
||||
height="1.0124203">
|
||||
id="filter3835"
|
||||
color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="0.18325482"
|
||||
id="feGaussianBlur4682" />
|
||||
stdDeviation="0.16788411"
|
||||
id="feGaussianBlur3837" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#5a5a5a"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="9.5901357"
|
||||
inkscape:cx="-49.076544"
|
||||
inkscape:cy="38.193551"
|
||||
inkscape:zoom="9.0416667"
|
||||
inkscape:cx="-1.4324543"
|
||||
inkscape:cy="23.683345"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1039"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="-2"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
|
@ -141,38 +100,22 @@
|
|||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-2.3507795,-981.57758)">
|
||||
<g
|
||||
id="g3761"
|
||||
transform="translate(-8.6162061e-6,-0.71894668)"
|
||||
style="stroke:url(#linearGradient3771)" />
|
||||
<rect
|
||||
style="opacity:0.37007874;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter4668)"
|
||||
id="rect2985"
|
||||
width="2.4804094"
|
||||
height="70.821518"
|
||||
x="6.7597957"
|
||||
y="981.57758"
|
||||
ry="0" />
|
||||
<g
|
||||
style="opacity:0.99212598;stroke:url(#linearGradient3798);stroke-width:0.50000000000000000;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
transform="matrix(1.2087394,0,0,1.2087394,-1.6699256,-241.42496)"
|
||||
id="g3792">
|
||||
<path
|
||||
id="path3794"
|
||||
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
|
||||
style="fill:none;stroke:url(#linearGradient3801);stroke-width:0.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 729.09119,717.77747 6.25598,0 0,6.25598 -6.25598,0 z m 15.7057,15.7057 6.25598,0 0,6.25598 -6.25598,0 z m -12.87727,-12.87727 6.25598,0 0,6.25598 -6.25598,0 z m 15.7057,15.7057 6.25598,0 0,6.25598 -6.25598,0 z"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccscc" />
|
||||
</g>
|
||||
<rect
|
||||
ry="0"
|
||||
y="981.57758"
|
||||
x="6.7597957"
|
||||
height="70.821518"
|
||||
width="2.4804094"
|
||||
id="rect4142"
|
||||
style="opacity:0.37007874;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter4680)" />
|
||||
transform="translate(-2.4330747,-1028.3912)">
|
||||
<path
|
||||
id="path2987"
|
||||
style="opacity:0.3503937;fill:url(#radialGradient3786);fill-opacity:1;stroke:none;filter:url(#filter3835)"
|
||||
d="m 7.2673342,1041.6064 -1.960015,8.0963 0,-8.8981 -2.0878414,5.53 c 0.075899,-1.0493 0.3490324,-7.0871 1.5126195,-10.977 l -1.8961007,2.8203 c 0.1663707,-2.2747 1.6308493,-9.1111 5.2515611,-9.1521 3.6207113,0.041 5.0851903,6.8774 5.2515613,9.1521 l -1.896101,-2.8203 c 1.163587,3.8899 1.436721,9.9277 1.51262,10.977 l -2.087842,-5.53 0,8.8981 -1.9600148,-8.0963 -0.8202235,10.4931 z"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccccccccc"
|
||||
transform="matrix(1,0,0,1.574915,0,-591.60242)"
|
||||
inkscape:export-xdpi="119.96432"
|
||||
inkscape:export-ydpi="119.96432" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 7.5335973,1034.5132 -1.2303098,3.8498 0,-4.187 -1.3105469,2.3261 c 0.047642,-0.4414 0.2190892,-2.9811 0.9494777,-4.6174 l -1.1901904,1.1864 c 0.1044316,-0.9569 1.023691,-3.8325 3.2964271,-3.8498 2.272736,0.017 3.191995,2.8929 3.296427,3.8498 l -1.190191,-1.1864 c 0.730389,1.6363 0.901836,4.176 0.949478,4.6174 l -1.3105466,-2.3261 0,4.187 -1.2303096,-3.8498 -0.5148578,3.8382 z"
|
||||
style="opacity:0.3503937;fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter3831)"
|
||||
id="path3758"
|
||||
transform="matrix(1,0,0,1.574915,0,-591.60242)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 4.4 KiB |
|
@ -12,10 +12,6 @@ find_package(FLEX REQUIRED)
|
|||
find_package(Freetype)
|
||||
find_package(ZLIB)
|
||||
|
||||
if(WIN32)
|
||||
add_definitions(-lwinmm -ldxguid -limm32 -lversion)
|
||||
endif()
|
||||
|
||||
BISON_TARGET(cfgparser config.y ${CMAKE_CURRENT_SOURCE_DIR}/parser.c)
|
||||
FLEX_TARGET(cfgscanner config.l ${CMAKE_CURRENT_SOURCE_DIR}/lexer.c)
|
||||
ADD_FLEX_BISON_DEPENDENCY(cfgscanner cfgparser)
|
||||
|
@ -74,6 +70,10 @@ endif()
|
|||
if(ZLIB_FOUND)
|
||||
set(LIBs ${LIBs} ${ZLIB_LIBRARY})
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(LIBs ${LIBs} -ldxguid -limm32 -lversion)
|
||||
endif()
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${SDL_INCLUDE_DIR} ${ALUT_INCLUDE_DIR} ${GLEW_INCLUDE_PATH})
|
||||
add_executable(taisei WIN32 ${SRCs})
|
||||
|
|
|
@ -26,6 +26,8 @@ enum {
|
|||
KEY_SHOT,
|
||||
KEY_BOMB,
|
||||
|
||||
FULLSCREEN,
|
||||
|
||||
NO_SHADER,
|
||||
NO_AUDIO
|
||||
};
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
"key_shot" { yylval = KEY_SHOT; return tKEY_SHOT; }
|
||||
"key_bomb" { yylval = KEY_BOMB; return tKEY_BOMB; }
|
||||
|
||||
"fullscreen" { yylval = FULLSCREEN; return tFULLSCREEN; }
|
||||
|
||||
"disable_shader" { yylval = NO_SHADER; return tNO_SHADER; }
|
||||
"disable_audio" {yylval = NO_AUDIO; return tNO_AUDIO; }
|
||||
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
%token tKEY_SHOT
|
||||
%token tKEY_BOMB
|
||||
|
||||
%token tFULLSCREEN
|
||||
|
||||
%token tNO_SHADER
|
||||
%token tNO_AUDIO
|
||||
|
||||
|
@ -74,7 +76,8 @@ key_key : tKEY_UP
|
|||
| tKEY_SHOT
|
||||
| tKEY_BOMB
|
||||
| tNO_SHADER
|
||||
| tNO_AUDIO;
|
||||
| tNO_AUDIO
|
||||
| tFULLSCREEN;
|
||||
|
||||
nl : LB { lineno++; };
|
||||
%%
|
||||
|
@ -116,6 +119,8 @@ void config_preset() {
|
|||
tconfig.intval[KEY_SHOT] = SDLK_z;
|
||||
tconfig.intval[KEY_BOMB] = SDLK_x;
|
||||
|
||||
tconfig.intval[FULLSCREEN] = 0;
|
||||
|
||||
tconfig.intval[NO_SHADER] = 0;
|
||||
tconfig.intval[NO_AUDIO] = 0;
|
||||
}
|
|
@ -39,7 +39,7 @@ void create_enemy_p(Enemy **enemies, complex pos, int hp, EnemyDrawRule draw_rul
|
|||
void _delete_enemy(void **enemies, void* enemy) {
|
||||
Enemy *e = (Enemy *)enemy;
|
||||
|
||||
if(e->hp <= 0) {
|
||||
if(e->hp <= 0 && e->hp != ENEMY_IMMUNE) {
|
||||
int i;
|
||||
for(i = 0; i < 10; i++)
|
||||
create_particle2c("flare", e->pos, NULL, Fade, timeout_linear, 10, (3+frand()*10)*cexp(I*frand()*2*M_PI));
|
||||
|
|
|
@ -43,8 +43,9 @@ enum {
|
|||
POINT_OF_COLLECT = VIEWPORT_H/4,
|
||||
ATTACK_START_DELAY = 40,
|
||||
DEATHBOMB_TIME = 10,
|
||||
PLR_MAXPOWER = 4,
|
||||
|
||||
SNDSRC_COUNT = 30,
|
||||
SNDSRC_COUNT = 35,
|
||||
|
||||
ACTION_DESTROY,
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ void draw_items() {
|
|||
for(p = global.items; p; p = p->next) {
|
||||
switch(p->type){
|
||||
case Power:
|
||||
if(global.plr.power < 6) {
|
||||
if(global.plr.power <= PLR_MAXPOWER) {
|
||||
tex = get_tex("items/power");
|
||||
break;
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ void process_items() {
|
|||
if(v == 1) {
|
||||
switch(item->type) {
|
||||
case Power:
|
||||
global.plr.power += 0.1;
|
||||
plr_set_power(&global.plr, global.plr.power + 0.05);
|
||||
break;
|
||||
case Point:
|
||||
global.points += 100;
|
||||
|
|
|
@ -61,7 +61,12 @@ int main(int argc, char** argv) {
|
|||
printf("-- SDL_Init\n");
|
||||
|
||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||
if((display = SDL_SetVideoMode(SCREEN_W, SCREEN_H, 32, SDL_OPENGL)) == NULL)
|
||||
|
||||
int flags = SDL_OPENGL;
|
||||
if(tconfig.intval[FULLSCREEN])
|
||||
flags |= SDL_FULLSCREEN;
|
||||
|
||||
if((display = SDL_SetVideoMode(SCREEN_W, SCREEN_H, 32, flags)) == NULL)
|
||||
errx(-1, "Error opening screen: %s", SDL_GetError());
|
||||
|
||||
printf("-- SDL viewport\n");
|
||||
|
|
24
src/player.c
|
@ -100,6 +100,25 @@ void player_logic(Player* plr) {
|
|||
plr_realdeath(plr);
|
||||
}
|
||||
|
||||
void plr_set_power(Player *plr, float npow) {
|
||||
switch(plr->cha) {
|
||||
case Youmu:
|
||||
youmu_power(plr, npow);
|
||||
break;
|
||||
case Marisa:
|
||||
marisa_power(plr, npow);
|
||||
break;
|
||||
}
|
||||
|
||||
plr->power = npow;
|
||||
|
||||
if(plr->power > PLR_MAXPOWER)
|
||||
plr->power = PLR_MAXPOWER;
|
||||
|
||||
if(plr->power < 0)
|
||||
plr->power = 0;
|
||||
}
|
||||
|
||||
void plr_bomb(Player *plr) {
|
||||
if(global.frames - plr->recovery >= 0 && plr->bombs > 0) {
|
||||
Enemy *e;
|
||||
|
@ -138,13 +157,10 @@ void plr_realdeath(Player *plr) {
|
|||
if(global.plr.bombs < 3)
|
||||
global.plr.bombs = 3;
|
||||
}
|
||||
|
||||
if(plr->slaves)
|
||||
delete_enemies(&plr->slaves);
|
||||
}
|
||||
|
||||
void plr_death(Player *plr) {
|
||||
if(plr->deathtime == -1) {
|
||||
if(plr->deathtime == -1 && global.frames - abs(plr->recovery) > 0) {
|
||||
int i;
|
||||
for(i = 0; i < 20; i++)
|
||||
create_particle2c("flare", plr->pos, NULL, Shrink, timeout_linear, 40, (3+frand()*7)*cexp(I*rand()));
|
||||
|
|
|
@ -27,7 +27,7 @@ typedef enum {
|
|||
YoumuOpposite,
|
||||
YoumuHoming,
|
||||
|
||||
MarisaFoo = YoumuOpposite,
|
||||
MarisaLaser = YoumuOpposite,
|
||||
MarisaBar = YoumuHoming
|
||||
} ShotMode;
|
||||
|
||||
|
@ -43,7 +43,7 @@ typedef struct {
|
|||
int lifes;
|
||||
int bombs;
|
||||
|
||||
float recovery;
|
||||
int recovery;
|
||||
|
||||
int deathtime;
|
||||
|
||||
|
@ -59,6 +59,8 @@ void init_player(Player*, Character cha, ShotMode shot);
|
|||
void player_draw(Player*);
|
||||
void player_logic(Player*);
|
||||
|
||||
void plr_set_power(Player *plr, float npow);
|
||||
|
||||
void plr_bomb(Player*);
|
||||
void plr_realdeath(Player*);
|
||||
void plr_death(Player*);
|
||||
|
|
|
@ -41,11 +41,11 @@ void youmu_shot(Player *plr) {
|
|||
}
|
||||
|
||||
if(plr->shot == YoumuOpposite && plr->slaves == NULL)
|
||||
create_enemy_p(&plr->slaves, plr->pos, ENEMY_IMMUNE, youmu_opposite_draw, youmu_opposite_logic, add_ref(plr), 0, 0, 0);
|
||||
create_enemy_p(&plr->slaves, plr->pos, ENEMY_IMMUNE, youmu_opposite_draw, youmu_opposite_logic, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
void youmu_opposite_draw(Enemy *e, int t) {
|
||||
complex pos = e->pos + ((Player *)REF(e->args[0]))->pos;
|
||||
complex pos = e->pos + global.plr.pos;
|
||||
|
||||
create_particle2c("flare", pos, NULL, Shrink, timeout, 10, -e->pos+10I);
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ void youmu_opposite_logic(Enemy *e, int t) {
|
|||
if(t < 0)
|
||||
return;
|
||||
|
||||
Player *plr = (Player *)REF(e->args[0]);
|
||||
Player *plr = &global.plr;
|
||||
|
||||
if(plr->focus < 15) {
|
||||
e->args[2] = carg(plr->pos - e->pos0);
|
||||
|
@ -91,34 +91,95 @@ int youmu_homing(Projectile *p, int t) { // a[0]: velocity, a[1]: target, a[2]:
|
|||
return 1;
|
||||
}
|
||||
|
||||
void youmu_power(Player *plr, float npow) {
|
||||
}
|
||||
|
||||
/* Marisa */
|
||||
|
||||
void MariLaser(Projectile *p, int t) {
|
||||
Player *plr = (Player *)REF(p->args[1]);
|
||||
if(cimag(p->pos) - cimag(plr->pos) < 90) {
|
||||
glScissor(VIEWPORT_X, SCREEN_H - cimag(plr->pos)+5, VIEWPORT_W+VIEWPORT_X, VIEWPORT_H);
|
||||
if(REF(p->args[1]) == NULL)
|
||||
return;
|
||||
|
||||
if(cimag(p->pos) - cimag(global.plr.pos) < 90) {
|
||||
glScissor(VIEWPORT_X, SCREEN_H - VIEWPORT_Y- cimag(((Enemy *)REF(p->args[1]))->pos)+1, VIEWPORT_W+VIEWPORT_X, VIEWPORT_H);
|
||||
glEnable(GL_SCISSOR_TEST);
|
||||
}
|
||||
|
||||
ProjDraw(p, t);
|
||||
|
||||
|
||||
glDisable(GL_SCISSOR_TEST);
|
||||
}
|
||||
|
||||
int mari_laser(Projectile *p, int t) {
|
||||
if(t == EVENT_DEATH) {
|
||||
free_ref(p->args[1]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(REF(p->args[1]) == NULL)
|
||||
return ACTION_DESTROY;
|
||||
|
||||
linear(p, t);
|
||||
|
||||
Player *plr = (Player *)REF(p->args[1]);
|
||||
|
||||
p->pos = plr->pos + p->pos - creal(p->pos0)*abs(plr->focus)/30.0;
|
||||
p->pos = ((Enemy *)REF(p->args[1]))->pos + p->pos;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void marisa_laser_slave(Enemy *e, int t) {
|
||||
if(global.plr.fire) {
|
||||
if(!(global.frames % 4))
|
||||
create_projectile_p(&global.projs, get_tex("proj/marilaser"), 0, NULL, MariLaser, mari_laser, -20I, add_ref(e),0,0)->type = PlrProj;
|
||||
|
||||
if(!(global.frames%3)) {
|
||||
float s = 0.5 + 0.3*sin(global.frames/7.0);
|
||||
create_particle2c("marilaser_part0", 0, rgb(1-s,0.5,s), PartDraw, mari_laser, -15I, add_ref(e))->type = PlrProj;
|
||||
}
|
||||
create_particle1c("lasercurve", e->pos, NULL, Fade, timeout, 4)->type = PlrProj;
|
||||
}
|
||||
|
||||
e->pos = global.plr.pos + (1 - abs(global.plr.focus)/30.0)*e->pos0 + (abs(global.plr.focus)/30.0)*e->args[0];
|
||||
|
||||
}
|
||||
|
||||
void MariLaserSlave(Enemy *e, int t) {
|
||||
glPushMatrix();
|
||||
glTranslatef(creal(e->pos), cimag(e->pos), -1);
|
||||
glRotatef(global.frames * 3, 0, 0, 1);
|
||||
|
||||
draw_texture(0,0,"part/lasercurve");
|
||||
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
void marisa_shot(Player *plr) {
|
||||
if(plr->fire) {
|
||||
if(!(global.frames % 4)) {
|
||||
create_projectile_p(&global.projs, get_tex("proj/marisa"), +15, NULL, MariLaser, mari_laser, -20I, add_ref(plr),0,0)->type = PlrProj;
|
||||
create_projectile_p(&global.projs, get_tex("proj/marisa"), -15, NULL, MariLaser, mari_laser, -20I, add_ref(plr),0,0)->type = PlrProj;
|
||||
if(!(global.frames % 6)) {
|
||||
create_projectile1c("marisa", plr->pos + 10 - 15I, NULL, linear, -20I)->type = PlrProj;
|
||||
create_projectile1c("marisa", plr->pos - 10 - 15I, NULL, linear, -20I)->type = PlrProj;
|
||||
}
|
||||
}
|
||||
|
||||
if(plr->shot == MarisaLaser && plr->slaves == NULL)
|
||||
create_enemy_p(&plr->slaves, -40I, ENEMY_IMMUNE, MariLaserSlave, marisa_laser_slave, -40I,0,0,0);
|
||||
}
|
||||
|
||||
void marisa_power(Player *plr, float npow) {
|
||||
delete_enemies(&plr->slaves);
|
||||
if(npow < 1) {
|
||||
create_enemy_p(&plr->slaves, -40I, ENEMY_IMMUNE, MariLaserSlave, marisa_laser_slave, -40I,0,0,0);
|
||||
return;
|
||||
}
|
||||
|
||||
if(npow >= 1) {
|
||||
create_enemy_p(&plr->slaves, 25-5I, ENEMY_IMMUNE, MariLaserSlave, marisa_laser_slave, 8-40I,0,0,0);
|
||||
create_enemy_p(&plr->slaves, -25-5I, ENEMY_IMMUNE, MariLaserSlave, marisa_laser_slave, -8-40I,0,0,0);
|
||||
}
|
||||
|
||||
if(npow >= 3) {
|
||||
create_enemy_p(&plr->slaves, 17-30I, ENEMY_IMMUNE, MariLaserSlave, marisa_laser_slave, 4-45I,0,0,0);
|
||||
create_enemy_p(&plr->slaves, -17-30I, ENEMY_IMMUNE, MariLaserSlave, marisa_laser_slave, -4-45I,0,0,0);
|
||||
} else if(npow >= 2) {
|
||||
create_enemy_p(&plr->slaves, -30I, ENEMY_IMMUNE, MariLaserSlave, marisa_laser_slave, -50I,0,0,0);
|
||||
}
|
||||
}
|
|
@ -21,8 +21,11 @@ void youmu_opposite_logic(Enemy *e, int t);
|
|||
|
||||
int youmu_homing(Projectile *p, int t);
|
||||
|
||||
void youmu_power(Player *plr, float npow);
|
||||
|
||||
/* Marisa */
|
||||
|
||||
void marisa_shot(Player *plr);
|
||||
|
||||
void marisa_power(Player *plr, float npow);
|
||||
#endif
|
|
@ -44,7 +44,7 @@ Projectile *create_projectile_p(Projectile **dest, Texture *tex, complex pos, Co
|
|||
p->birthtime = global.frames;
|
||||
p->pos = pos;
|
||||
p->pos0 = pos;
|
||||
p->angle = 0;
|
||||
p->angle = M_PI/2;
|
||||
p->rule = rule;
|
||||
p->draw = draw;
|
||||
p->tex = tex;
|
||||
|
@ -211,6 +211,19 @@ void ProjDraw(Projectile *proj, int t) {
|
|||
glPopMatrix();
|
||||
}
|
||||
|
||||
void PartDraw(Projectile *proj, int t) {
|
||||
glPushMatrix();
|
||||
glTranslatef(creal(proj->pos), cimag(proj->pos), 0);
|
||||
glRotatef(proj->angle*180/M_PI+90, 0, 0, 1);
|
||||
|
||||
if(proj->clr)
|
||||
glColor4fv((float *)proj->clr);
|
||||
|
||||
draw_texture_p(0,0, proj->tex);
|
||||
|
||||
glPopMatrix();
|
||||
glColor3f(1,1,1);
|
||||
}
|
||||
void Blast(Projectile *p, int t) {
|
||||
if(t == 1) {
|
||||
p->args[1] = frand()*360 + frand()*I;
|
||||
|
|
|
@ -74,6 +74,7 @@ int linear(Projectile *p, int t);
|
|||
int accelerated(Projectile *p, int t);
|
||||
int asymptotic(Projectile *p, int t);
|
||||
void ProjDraw(Projectile *p, int t);
|
||||
void PartDraw(Projectile *p, int t);
|
||||
|
||||
void Blast(Projectile *p, int t);
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ void play_sound_p(Sound *snd) {
|
|||
alSourcei(global.sndsrc[res],AL_BUFFER, snd->alsnd);
|
||||
alSourcePlay(global.sndsrc[res]);
|
||||
} else {
|
||||
fprintf(stderr,"play_sound_p():\n!- not enough sources");
|
||||
warnx("play_sound_p():\n!- not enough sources");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -266,10 +266,10 @@ void stage0_events() {
|
|||
create_enemy2c(VIEWPORT_W*(_i&1) + frand()*100I + 70I, 2, Swirl, stage0_enemy2, 3.5*(1-2*(_i&1)), frand()*7I);
|
||||
|
||||
FROM_TO(1100, 1600, 20)
|
||||
create_enemy2c(VIEWPORT_W/3, 3, Swirl, stage0_enemy3, 4I, 0.06);
|
||||
create_enemy2c(VIEWPORT_W/3, 1, Swirl, stage0_enemy3, 4I, 0.06);
|
||||
|
||||
FROM_TO(1500, 2000, 20)
|
||||
create_enemy2c(VIEWPORT_W+200I, 3, Swirl, stage0_enemy3, -2, -0.04-0.03I);
|
||||
create_enemy2c(VIEWPORT_W+200I, 2, Swirl, stage0_enemy3, -2, -0.04-0.03I);
|
||||
|
||||
FROM_TO(1250, 1800, 60)
|
||||
create_enemy1c(VIEWPORT_W/2 + frand()*500-250 , 8, Fairy, stage0_enemy0, frand()*2-1);
|
||||
|
|