Slightly rewrote the news ticker architecture

- The news ticker is now a stealth button that opens a window.
- News window now has brandings for FNN and Pawprint Press.
- Ticker now provides extra lore by me if is_caseyverse.txt is present.
- Moved the news ticker functions to the window source, for now.
- Added .gdignore
This commit is contained in:
Tony Bark 2022-08-08 03:53:39 -04:00
parent aed8b266b8
commit f8a0f97767
17 changed files with 670 additions and 157 deletions

2
.gdignore Normal file
View file

@ -0,0 +1,2 @@
**.md
screenshot.png

35
assets/fnn.png.import Normal file
View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/fnn.png-4b0621cc5794588bb47068090a8f4966.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/fnn.png"
dest_files=[ "res://.import/fnn.png-4b0621cc5794588bb47068090a8f4966.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

BIN
assets/ticker/fnn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/fnn.png-5c63f68777d5a929666ef2d1f774ecb5.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/ticker/fnn.png"
dest_files=[ "res://.import/fnn.png-5c63f68777d5a929666ef2d1f774ecb5.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,165 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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="76.225838mm"
height="10.530579mm"
viewBox="0 0 76.22584 10.530579"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c8708, 2021-01-15)"
sodipodi:docname="pawprint-logo.svg"
inkscape:export-filename="tpaw-black.png"
inkscape:export-xdpi="25.146"
inkscape:export-ydpi="25.146">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="2.4881314"
inkscape:cx="58.047217"
inkscape:cy="38.038055"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
showguides="true"
inkscape:pagecheckerboard="true"
inkscape:window-width="1920"
inkscape:window-height="987"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:document-rotation="0" />
<metadata
id="metadata5">
<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="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-189.42537,318.35553)">
<g
id="g4705"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.46132;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.11890803,-7.945104e-4,0.00668622,0.11984867,162.3449,-378.03018)">
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.46132;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 592.49553,524.1496 c 0,7.61279 -4.71627,9.2516 -10.98875,11.23585 -6.59099,2.085 -15.47882,-5.24473 -15.47882,-12.85752 0,-7.6128 7.94255,-17.95418 14.53356,-17.95418 6.59097,0 11.93401,11.96306 11.93401,19.57585 z"
id="path3950"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sssss" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.46132;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 568.86377,547.48385 c 0,7.61279 -4.71626,9.25159 -10.98876,11.23584 -6.59099,2.08499 -15.4788,-5.24473 -15.4788,-12.85752 0,-7.61279 7.94254,-17.95418 14.53353,-17.95418 6.59098,0 11.93403,11.96307 11.93403,19.57586 z"
id="path3950-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sssss" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.46132;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 622.03523,521.53715 c 0,7.6128 -4.71628,9.25161 -10.98878,11.23584 -6.59098,2.085 -15.4788,-5.24472 -15.4788,-12.85751 0,-7.61279 7.94254,-17.95418 14.53354,-17.95418 6.59098,0 11.93404,11.96306 11.93404,19.57585 z"
id="path3950-8-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sssss" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.46132;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 642.59487,546.09385 c 0,7.61278 -4.71627,9.25159 -10.98877,11.23584 -6.59099,2.085 -15.4788,-5.24472 -15.4788,-12.85752 0,-7.61278 7.94254,-17.95417 14.53354,-17.95417 6.59097,0 11.93403,11.96306 11.93403,19.57585 z"
id="path3950-8-8-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sssss" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.46132;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 591.14675,538.99253 c -10.43858,0.10692 -12.43121,1.47616 -20.44817,17.72107 -9.86692,19.99352 9.60144,26.9789 19.14105,27.0626 l 6.08291,0.0134 c 9.53076,-0.0767 30.15822,-7.07228 20.28625,-27.07603 -8.01696,-16.24492 -10.23952,-17.61416 -20.6781,-17.72107 -1.63517,-0.0421 -2.96692,-0.031 -4.38394,0 z"
id="path3806"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csccsccc" />
</g>
<g
id="g2049"
transform="matrix(0.67677022,0,0,0.68248465,63.734792,-101.58923)">
<path
d="m 189.34585,-309.79459 v 2.72025 q 0,0.79582 0.094,1.00563 0.10128,0.20257 0.34726,0.32556 0.25322,0.12299 0.91881,0.12299 v 0.26768 h -4.98472 v -0.26768 q 0.68007,0 0.91881,-0.12299 0.24598,-0.13023 0.34003,-0.3328 0.10129,-0.20257 0.10129,-0.99839 v -6.36655 q 0,-0.79582 -0.10129,-0.99839 -0.094,-0.20981 -0.34003,-0.3328 -0.24598,-0.12299 -0.91881,-0.12299 v -0.26768 h 4.27572 q 2.11254,0 3.03135,0.75241 0.91881,0.75241 0.91881,1.88102 0,0.95499 -0.59325,1.63505 -0.59325,0.68006 -1.63505,0.92604 -0.70177,0.17364 -2.37298,0.17364 z m 0,-4.80386 v 4.23955 q 0.23874,0.0145 0.36173,0.0145 0.88264,0 1.36013,-0.5209 0.47749,-0.52814 0.47749,-1.62781 0,-1.09245 -0.47749,-1.59888 -0.47749,-0.50643 -1.42524,-0.50643 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2001" />
<path
d="m 198.63522,-306.35087 q -1.23714,1.09244 -2.22106,1.09244 -0.57877,0 -0.96221,-0.3762 -0.38344,-0.38344 -0.38344,-0.95498 0,-0.77412 0.66559,-1.38907 0.66559,-0.62219 2.90112,-1.64952 v -0.68006 q 0,-0.76688 -0.0868,-0.96222 -0.0796,-0.20257 -0.31109,-0.34726 -0.23151,-0.15193 -0.5209,-0.15193 -0.47025,0 -0.77411,0.2098 -0.1881,0.13023 -0.1881,0.30386 0,0.15193 0.20257,0.37621 0.27492,0.31109 0.27492,0.60048 0,0.3545 -0.26769,0.60772 -0.26045,0.24598 -0.6873,0.24598 -0.45578,0 -0.76688,-0.27492 -0.30385,-0.27492 -0.30385,-0.64389 0,-0.5209 0.41237,-0.99116 0.41238,-0.47749 1.15032,-0.73071 0.73795,-0.25321 1.53376,-0.25321 0.96222,0 1.5193,0.41238 0.5643,0.40514 0.7307,0.88263 0.10129,0.30386 0.10129,1.3963 v 2.62621 q 0,0.46302 0.0362,0.58601 0.0362,0.11575 0.10852,0.17363 0.0724,0.0579 0.1664,0.0579 0.1881,0 0.38344,-0.26768 l 0.21704,0.17363 q -0.36173,0.53537 -0.75241,0.78135 -0.38344,0.23874 -0.8754,0.23874 -0.57878,0 -0.90434,-0.26768 -0.32556,-0.27492 -0.39791,-0.82476 z m 0,-0.52813 v -2.26447 q -0.8754,0.51367 -1.30225,1.09968 -0.28215,0.39067 -0.28215,0.78858 0,0.3328 0.23874,0.58601 0.18087,0.19534 0.50643,0.19534 0.36174,0 0.83923,-0.40514 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2003" />
<path
d="m 209.01704,-305.14991 -1.85209,-4.96301 -1.81591,4.96301 h -0.37621 l -1.80144,-4.90513 q -0.40515,-1.12139 -0.6873,-1.46142 -0.18087,-0.23151 -0.54984,-0.33279 v -0.26769 h 3.41479 v 0.26769 q -0.34727,0 -0.47749,0.10128 -0.13023,0.10129 -0.13023,0.23151 0,0.12299 0.23151,0.73794 l 0.99116,2.64068 0.95498,-2.64068 -0.0723,-0.17363 q -0.21705,-0.5426 -0.38344,-0.6873 -0.15917,-0.15193 -0.4992,-0.2098 v -0.26769 h 3.46543 v 0.26769 q -0.40515,0.0217 -0.51367,0.11575 -0.10852,0.0868 -0.10852,0.25322 0,0.15916 0.20981,0.70176 l 0.95498,2.64068 0.86817,-2.43087 q 0.1881,-0.5209 0.1881,-0.709 0,-0.28216 -0.13746,-0.41238 -0.13746,-0.13022 -0.53537,-0.15916 v -0.26769 h 2.00402 v 0.26769 q -0.3328,0.0434 -0.52814,0.23874 -0.19533,0.1881 -0.50643,1.08521 l -1.89549,5.37539 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2005" />
<path
d="m 215.63681,-306.03978 v 2.51769 q 0,0.52089 0.0796,0.709 0.0868,0.1881 0.26045,0.27492 0.17363,0.0868 0.68006,0.0868 v 0.26769 h -3.8561 v -0.26769 q 0.44855,-0.0145 0.66559,-0.25321 0.14469,-0.1664 0.14469,-0.86093 v -7.14067 q 0,-0.71624 -0.16639,-0.91157 -0.1664,-0.20257 -0.64389,-0.23151 v -0.26769 h 2.83601 v 0.88987 q 0.3545,-0.5209 0.72347,-0.75241 0.52813,-0.34003 1.15032,-0.34003 0.74517,0 1.35289,0.47026 0.61495,0.47025 0.93328,1.30225 0.31833,0.82475 0.31833,1.77974 0,1.02733 -0.3328,1.88102 -0.32556,0.84646 -0.95498,1.29502 -0.62219,0.44131 -1.38907,0.44131 -0.55707,0 -1.0418,-0.24598 -0.36174,-0.1881 -0.75964,-0.64389 z m 0,-0.7307 q 0.62218,0.88263 1.33118,0.88263 0.39068,0 0.64389,-0.41238 0.37621,-0.60771 0.37621,-2.31511 0,-1.7508 -0.41238,-2.39469 -0.27492,-0.42684 -0.73794,-0.42684 -0.73071,0 -1.20096,1.05626 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2007" />
<path
d="m 224.07249,-312.11694 v 1.53376 q 0.67282,-1.04903 1.17925,-1.38906 0.50643,-0.34727 0.97669,-0.34727 0.40515,0 0.64389,0.25321 0.24598,0.24599 0.24598,0.70177 0,0.48473 -0.23874,0.75241 -0.23152,0.26769 -0.56431,0.26769 -0.38344,0 -0.6656,-0.24598 -0.28215,-0.24598 -0.33279,-0.27492 -0.0724,-0.0434 -0.1664,-0.0434 -0.20981,0 -0.39791,0.15916 -0.29662,0.24598 -0.44855,0.70177 -0.23151,0.70177 -0.23151,1.54823 v 1.55546 l 0.007,0.40515 q 0,0.41238 0.0506,0.52813 0.0868,0.19534 0.25322,0.28939 0.17363,0.0868 0.57878,0.10852 v 0.26045 h -3.65354 v -0.26045 q 0.44132,-0.0362 0.59325,-0.23874 0.15916,-0.20981 0.15916,-1.09245 v -3.74034 q 0,-0.57878 -0.0579,-0.73795 -0.0724,-0.20257 -0.20981,-0.29662 -0.13746,-0.0941 -0.48473,-0.13022 v -0.26769 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2009" />
<path
d="m 229.46235,-315.39426 q 0.47026,0 0.79582,0.33279 0.32556,0.32556 0.32556,0.78859 0,0.46302 -0.3328,0.78858 -0.32556,0.32556 -0.78858,0.32556 -0.46302,0 -0.78858,-0.32556 -0.32557,-0.32556 -0.32557,-0.78858 0,-0.46303 0.32557,-0.78859 0.32556,-0.33279 0.78858,-0.33279 z m 1.01286,3.27732 v 5.36093 q 0,0.71623 0.1664,0.91881 0.1664,0.19533 0.65112,0.22427 v 0.26045 h -3.65353 v -0.26045 q 0.44855,-0.0145 0.66559,-0.26045 0.1447,-0.1664 0.1447,-0.88263 v -3.95016 q 0,-0.71624 -0.1664,-0.91157 -0.1664,-0.20257 -0.64389,-0.23151 v -0.26769 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2011" />
<path
d="m 234.70752,-312.11694 v 0.8754 q 0.5209,-0.56431 0.99839,-0.81752 0.47749,-0.26045 1.02733,-0.26045 0.65836,0 1.09244,0.36897 0.43409,0.36174 0.57878,0.90434 0.11576,0.41238 0.11576,1.5844 v 2.63344 q 0,0.78135 0.13746,0.97669 0.14469,0.1881 0.59324,0.23874 v 0.26045 h -3.42202 v -0.26045 q 0.38344,-0.0506 0.54984,-0.31833 0.11576,-0.18086 0.11576,-0.8971 v -3.00964 q 0,-0.83199 -0.0651,-1.04904 -0.0651,-0.21704 -0.22427,-0.33279 -0.15193,-0.12299 -0.34003,-0.12299 -0.62219,0 -1.15756,0.88987 v 3.62459 q 0,0.75965 0.13746,0.96222 0.1447,0.20257 0.52814,0.25321 v 0.26045 h -3.42203 v -0.26045 q 0.42685,-0.0434 0.60772,-0.27492 0.12299,-0.15916 0.12299,-0.94051 v -3.81993 q 0,-0.76688 -0.14469,-0.95498 -0.13746,-0.18811 -0.58602,-0.24598 v -0.26769 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2013" />
<path
d="m 242.87551,-314.59121 v 2.47427 h 1.60611 v 0.71624 h -1.60611 v 4.17443 q 0,0.58601 0.0507,0.75965 0.0579,0.16639 0.19533,0.27491 0.13746,0.10129 0.25322,0.10129 0.47026,0 0.88987,-0.71624 l 0.21704,0.15917 q -0.58601,1.38906 -1.90273,1.38906 -0.64389,0 -1.09244,-0.3545 -0.44132,-0.36173 -0.56431,-0.80305 -0.0724,-0.24598 -0.0724,-1.33119 v -3.65353 h -0.88263 v -0.25322 q 0.91157,-0.64389 1.54823,-1.35289 0.64389,-0.709 1.12138,-1.5844 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2015" />
</g>
<g
id="g2056"
transform="matrix(0.67677022,0,0,0.68248465,55.236042,-101.58923)">
<path
d="m 281.97916,-309.79459 v 2.72025 q 0,0.79582 0.0941,1.00563 0.10129,0.20257 0.34727,0.32556 0.25321,0.12299 0.91881,0.12299 v 0.26768 h -4.98472 v -0.26768 q 0.68006,0 0.91881,-0.12299 0.24598,-0.13023 0.34003,-0.3328 0.10129,-0.20257 0.10129,-0.99839 v -6.36655 q 0,-0.79582 -0.10129,-0.99839 -0.094,-0.20981 -0.34003,-0.3328 -0.24598,-0.12299 -0.91881,-0.12299 v -0.26768 h 4.27572 q 2.11253,0 3.03134,0.75241 0.91881,0.75241 0.91881,1.88102 0,0.95499 -0.59325,1.63505 -0.59324,0.68006 -1.63504,0.92604 -0.70177,0.17364 -2.37299,0.17364 z m 0,-4.80386 v 4.23955 q 0.23875,0.0145 0.36174,0.0145 0.88263,0 1.36012,-0.5209 0.4775,-0.52814 0.4775,-1.62781 0,-1.09245 -0.4775,-1.59888 -0.47749,-0.50643 -1.42524,-0.50643 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2017" />
<path
d="m 290.34249,-312.11694 v 1.53376 q 0.67283,-1.04903 1.17926,-1.38906 0.50643,-0.34727 0.97669,-0.34727 0.40514,0 0.64389,0.25321 0.24598,0.24599 0.24598,0.70177 0,0.48473 -0.23875,0.75241 -0.23151,0.26769 -0.56431,0.26769 -0.38344,0 -0.66559,-0.24598 -0.28216,-0.24598 -0.3328,-0.27492 -0.0724,-0.0434 -0.1664,-0.0434 -0.2098,0 -0.39791,0.15916 -0.29662,0.24598 -0.44855,0.70177 -0.23151,0.70177 -0.23151,1.54823 v 1.55546 l 0.007,0.40515 q 0,0.41238 0.0507,0.52813 0.0868,0.19534 0.25321,0.28939 0.17364,0.0868 0.57878,0.10852 v 0.26045 h -3.65353 v -0.26045 q 0.44132,-0.0362 0.59324,-0.23874 0.15917,-0.20981 0.15917,-1.09245 v -3.74034 q 0,-0.57878 -0.0579,-0.73795 -0.0724,-0.20257 -0.20981,-0.29662 -0.13746,-0.0941 -0.48472,-0.13022 v -0.26769 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2019" />
<path
d="m 299.57399,-308.97707 h -3.71141 q 0.0651,1.34566 0.71623,2.12701 0.4992,0.60048 1.20097,0.60048 0.43408,0 0.78858,-0.23875 0.3545,-0.24598 0.75965,-0.8754 l 0.24598,0.15916 q -0.54984,1.12139 -1.21544,1.59164 -0.66559,0.46302 -1.54099,0.46302 -1.50482,0 -2.27894,-1.15755 -0.62218,-0.93328 -0.62218,-2.31511 0,-1.69292 0.91157,-2.69131 0.91881,-1.00563 2.14871,-1.00563 1.02733,0 1.77974,0.84646 0.75965,0.83923 0.81753,2.49598 z m -1.77974,-0.48473 q 0,-1.16479 -0.13023,-1.59887 -0.12299,-0.43408 -0.39067,-0.65836 -0.15193,-0.13022 -0.40515,-0.13022 -0.3762,0 -0.61495,0.36897 -0.42685,0.64389 -0.42685,1.76527 v 0.25321 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2021" />
<path
d="m 304.68894,-312.30504 0.10852,2.30787 h -0.24598 q -0.44132,-1.02733 -0.91881,-1.40353 -0.47026,-0.37621 -0.94051,-0.37621 -0.29663,0 -0.50643,0.20258 -0.20981,0.19533 -0.20981,0.45578 0,0.19534 0.14469,0.37621 0.23151,0.29662 1.29502,1.02009 1.0635,0.71624 1.3963,1.22267 0.34003,0.4992 0.34003,1.12138 0,0.56431 -0.28215,1.10691 -0.28216,0.54261 -0.79582,0.832 -0.51367,0.28938 -1.13585,0.28938 -0.48473,0 -1.29502,-0.30385 -0.21704,-0.0796 -0.29662,-0.0796 -0.23875,0 -0.39791,0.36174 h -0.23875 l -0.11575,-2.43086 h 0.24598 q 0.32556,0.95498 0.88987,1.43247 0.57154,0.47749 1.07797,0.47749 0.34727,0 0.56431,-0.20981 0.22428,-0.21704 0.22428,-0.5209 0,-0.34726 -0.21705,-0.60048 -0.21704,-0.25321 -0.96945,-0.76688 -1.10691,-0.76688 -1.43247,-1.17202 -0.47749,-0.59325 -0.47749,-1.30949 0,-0.78134 0.53537,-1.41077 0.5426,-0.63665 1.56269,-0.63665 0.54984,0 1.06351,0.26768 0.19534,0.10852 0.31833,0.10852 0.13022,0 0.2098,-0.0506 0.0796,-0.0579 0.25322,-0.31109 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2023" />
<path
d="m 310.44776,-312.30504 0.10853,2.30787 h -0.24598 q -0.44132,-1.02733 -0.91881,-1.40353 -0.47026,-0.37621 -0.94052,-0.37621 -0.29662,0 -0.50643,0.20258 -0.2098,0.19533 -0.2098,0.45578 0,0.19534 0.14469,0.37621 0.23151,0.29662 1.29501,1.02009 1.06351,0.71624 1.3963,1.22267 0.34004,0.4992 0.34004,1.12138 0,0.56431 -0.28216,1.10691 -0.28215,0.54261 -0.79582,0.832 -0.51366,0.28938 -1.13585,0.28938 -0.48472,0 -1.29501,-0.30385 -0.21704,-0.0796 -0.29662,-0.0796 -0.23875,0 -0.39791,0.36174 h -0.23875 l -0.11576,-2.43086 h 0.24599 q 0.32556,0.95498 0.88987,1.43247 0.57154,0.47749 1.07797,0.47749 0.34726,0 0.56431,-0.20981 0.22427,-0.21704 0.22427,-0.5209 0,-0.34726 -0.21704,-0.60048 -0.21704,-0.25321 -0.96945,-0.76688 -1.10691,-0.76688 -1.43248,-1.17202 -0.47749,-0.59325 -0.47749,-1.30949 0,-0.78134 0.53537,-1.41077 0.54261,-0.63665 1.5627,-0.63665 0.54984,0 1.0635,0.26768 0.19534,0.10852 0.31833,0.10852 0.13023,0 0.20981,-0.0506 0.0796,-0.0579 0.25321,-0.31109 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14.8167px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="path2025" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
transform="translate(-189.42537,318.35553)" />
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/pawprint-logo.svg-f33569ddfdeabc9ffb0b78f564117520.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/ticker/pawprint-logo.svg"
dest_files=[ "res://.import/pawprint-logo.svg-f33569ddfdeabc9ffb0b78f564117520.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

4
assets/ticker_black.tres Normal file
View file

@ -0,0 +1,4 @@
[gd_resource type="StyleBoxFlat" format=2]
[resource]
bg_color = Color( 0, 0, 0, 1 )

0
is_caseyverse.txt Normal file
View file

7
json/ticker/README.md Normal file
View file

@ -0,0 +1,7 @@
# News Ticker
With the exception of certain policies, the majority of the lore in City Limits comes from the news ticker. During regular gameplay (when there isn't any disasters or financial problems), the news ticker provides fictional turn of events that happen in the city, such as the Kitty Kibble shortage from SimCity 3000.
## Extra Lore
Additionally, I've added my own turn of events with the ``extra_lore.json`` file. Internally, this is known as "Caseyverse" and has a global node of the same name. That node is designed so the game can function without it through the use of the ``if_caseyverse()`` function (which checks for that json file, at the moment) and any future related functions that deal with events.

View file

@ -0,0 +1,11 @@
{
"competing_outlet": "Citizen Telegram",
"ticker": [
"Some cats look to [other_outlet] for answers behind Kitty Kibble shortage.",
"Kit Welsh awarded for his medical breakthroughs in [city].",
"Ishard has frozen another one of Big Boston's numbers racket.",
"Can Ishard solve the Kitty Kibble shortage?",
"Who is Ishard? And where did he come from?",
"Big Boston gets frozen in his tracks again thanks to Ishard."
]
}

View file

@ -23,6 +23,7 @@ SimEvents="*res://scripts/autoload/sim_events.gd"
SimTime="*res://scripts/autoload/sim_time.gd" SimTime="*res://scripts/autoload/sim_time.gd"
ZoneData="*res://scripts/autoload/zone_data.gd" ZoneData="*res://scripts/autoload/zone_data.gd"
VRBridge="*res://scripts/autoload/vr_bridge.gd" VRBridge="*res://scripts/autoload/vr_bridge.gd"
Caseyverse="*res://scripts/autoload/caseyverse.gd"
[display] [display]

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=45 format=2] [gd_scene load_steps=45 format=2]
[ext_resource path="res://scenes/maps/MapOne.tscn" type="PackedScene" id=1] [ext_resource path="res://scenes/maps/MapOne.tscn" type="PackedScene" id=1]
[ext_resource path="res://scripts/ticker.gd" type="Script" id=2] [ext_resource path="res://assets/ticker/pawprint-logo.svg" type="Texture" id=2]
[ext_resource path="res://assets/symbols/fontawesome/population.svg" type="Texture" id=3] [ext_resource path="res://assets/symbols/fontawesome/population.svg" type="Texture" id=3]
[ext_resource path="res://scenes/windows/Advisor.tscn" type="PackedScene" id=4] [ext_resource path="res://scenes/windows/Advisor.tscn" type="PackedScene" id=4]
[ext_resource path="res://assets/ui/iccom.png" type="Texture" id=5] [ext_resource path="res://assets/ui/iccom.png" type="Texture" id=5]
@ -56,7 +56,7 @@ __meta__ = {
} }
[node name="RotateNews" type="Timer" parent="."] [node name="RotateNews" type="Timer" parent="."]
wait_time = 6.0 wait_time = 5.0
autostart = true autostart = true
[node name="MapOne" parent="." instance=ExtResource( 1 )] [node name="MapOne" parent="." instance=ExtResource( 1 )]
@ -263,19 +263,18 @@ __meta__ = {
} }
[node name="Status" type="Panel" parent="Controls/Windows"] [node name="Status" type="Panel" parent="Controls/Windows"]
anchor_top = 0.908333 anchor_top = 0.863333
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.00833
script = ExtResource( 2 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": true "_edit_use_anchors_": true
} }
[node name="SettingsBtn" type="Button" parent="Controls/Windows/Status"] [node name="SettingsBtn" type="Button" parent="Controls/Windows/Status"]
anchor_left = 0.0115391 anchor_left = 0.0115391
anchor_top = 0.193259 anchor_top = 0.0555202
anchor_right = 0.0525548 anchor_right = 0.0525548
anchor_bottom = 0.670871 anchor_bottom = 0.533132
hint_tooltip = "Meet" hint_tooltip = "Meet"
size_flags_horizontal = 4 size_flags_horizontal = 4
icon = ExtResource( 35 ) icon = ExtResource( 35 )
@ -285,9 +284,9 @@ __meta__ = {
[node name="StatCtr" type="HBoxContainer" parent="Controls/Windows/Status"] [node name="StatCtr" type="HBoxContainer" parent="Controls/Windows/Status"]
anchor_left = 0.0566406 anchor_left = 0.0566406
anchor_top = 0.208955 anchor_top = 0.0750188
anchor_right = 0.601562 anchor_right = 0.996094
anchor_bottom = 0.746269 anchor_bottom = 0.516879
custom_constants/separation = 50 custom_constants/separation = 50
alignment = 1 alignment = 1
script = ExtResource( 38 ) script = ExtResource( 38 )
@ -296,9 +295,9 @@ __meta__ = {
} }
[node name="ButtonCtr" type="HBoxContainer" parent="Controls/Windows/Status/StatCtr"] [node name="ButtonCtr" type="HBoxContainer" parent="Controls/Windows/Status/StatCtr"]
margin_left = 30.0 margin_left = 233.0
margin_right = 312.0 margin_right = 515.0
margin_bottom = 36.0 margin_bottom = 38.0
custom_constants/separation = 10 custom_constants/separation = 10
alignment = 1 alignment = 1
__meta__ = { __meta__ = {
@ -307,7 +306,7 @@ __meta__ = {
[node name="TaxBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"] [node name="TaxBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"]
margin_right = 42.0 margin_right = 42.0
margin_bottom = 36.0 margin_bottom = 38.0
hint_tooltip = "RCI" hint_tooltip = "RCI"
size_flags_horizontal = 4 size_flags_horizontal = 4
icon = ExtResource( 40 ) icon = ExtResource( 40 )
@ -315,7 +314,7 @@ icon = ExtResource( 40 )
[node name="ToolsBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"] [node name="ToolsBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"]
margin_left = 52.0 margin_left = 52.0
margin_right = 94.0 margin_right = 94.0
margin_bottom = 36.0 margin_bottom = 38.0
hint_tooltip = "Tools" hint_tooltip = "Tools"
size_flags_horizontal = 4 size_flags_horizontal = 4
icon = ExtResource( 42 ) icon = ExtResource( 42 )
@ -323,7 +322,7 @@ icon = ExtResource( 42 )
[node name="AdvsiorBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"] [node name="AdvsiorBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"]
margin_left = 104.0 margin_left = 104.0
margin_right = 146.0 margin_right = 146.0
margin_bottom = 36.0 margin_bottom = 38.0
hint_tooltip = "Meet" hint_tooltip = "Meet"
size_flags_horizontal = 4 size_flags_horizontal = 4
icon = ExtResource( 43 ) icon = ExtResource( 43 )
@ -331,12 +330,12 @@ icon = ExtResource( 43 )
[node name="VSeparator" type="VSeparator" parent="Controls/Windows/Status/StatCtr/ButtonCtr"] [node name="VSeparator" type="VSeparator" parent="Controls/Windows/Status/StatCtr/ButtonCtr"]
margin_left = 156.0 margin_left = 156.0
margin_right = 160.0 margin_right = 160.0
margin_bottom = 36.0 margin_bottom = 38.0
[node name="TurtleBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"] [node name="TurtleBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"]
margin_left = 170.0 margin_left = 170.0
margin_right = 211.0 margin_right = 211.0
margin_bottom = 36.0 margin_bottom = 38.0
hint_tooltip = "Slow" hint_tooltip = "Slow"
toggle_mode = true toggle_mode = true
icon = ExtResource( 8 ) icon = ExtResource( 8 )
@ -344,7 +343,7 @@ icon = ExtResource( 8 )
[node name="CheetaBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"] [node name="CheetaBtn" type="Button" parent="Controls/Windows/Status/StatCtr/ButtonCtr"]
margin_left = 221.0 margin_left = 221.0
margin_right = 268.0 margin_right = 268.0
margin_bottom = 36.0 margin_bottom = 38.0
hint_tooltip = "Fast" hint_tooltip = "Fast"
toggle_mode = true toggle_mode = true
icon = ExtResource( 7 ) icon = ExtResource( 7 )
@ -352,25 +351,25 @@ icon = ExtResource( 7 )
[node name="VSeparator2" type="VSeparator" parent="Controls/Windows/Status/StatCtr/ButtonCtr"] [node name="VSeparator2" type="VSeparator" parent="Controls/Windows/Status/StatCtr/ButtonCtr"]
margin_left = 278.0 margin_left = 278.0
margin_right = 282.0 margin_right = 282.0
margin_bottom = 36.0 margin_bottom = 38.0
[node name="NameDate" type="VBoxContainer" parent="Controls/Windows/Status/StatCtr"] [node name="NameDate" type="VBoxContainer" parent="Controls/Windows/Status/StatCtr"]
margin_left = 362.0 margin_left = 565.0
margin_right = 450.0 margin_right = 653.0
margin_bottom = 36.0 margin_bottom = 38.0
alignment = 1 alignment = 1
[node name="CityNameLbl" type="Label" parent="Controls/Windows/Status/StatCtr/NameDate"] [node name="CityNameLbl" type="Label" parent="Controls/Windows/Status/StatCtr/NameDate"]
margin_top = 2.0 margin_top = 3.0
margin_right = 88.0 margin_right = 88.0
margin_bottom = 16.0 margin_bottom = 17.0
text = "City Name" text = "City Name"
align = 1 align = 1
[node name="YearCtr" type="HBoxContainer" parent="Controls/Windows/Status/StatCtr/NameDate"] [node name="YearCtr" type="HBoxContainer" parent="Controls/Windows/Status/StatCtr/NameDate"]
margin_top = 20.0 margin_top = 21.0
margin_right = 88.0 margin_right = 88.0
margin_bottom = 34.0 margin_bottom = 35.0
[node name="CalIcon" type="TextureRect" parent="Controls/Windows/Status/StatCtr/NameDate/YearCtr"] [node name="CalIcon" type="TextureRect" parent="Controls/Windows/Status/StatCtr/NameDate/YearCtr"]
margin_right = 10.0 margin_right = 10.0
@ -388,15 +387,15 @@ __meta__ = {
} }
[node name="PopBudget" type="VBoxContainer" parent="Controls/Windows/Status/StatCtr"] [node name="PopBudget" type="VBoxContainer" parent="Controls/Windows/Status/StatCtr"]
margin_left = 500.0 margin_left = 703.0
margin_right = 526.0 margin_right = 729.0
margin_bottom = 36.0 margin_bottom = 38.0
alignment = 1 alignment = 1
[node name="BudgetCtr" type="HBoxContainer" parent="Controls/Windows/Status/StatCtr/PopBudget"] [node name="BudgetCtr" type="HBoxContainer" parent="Controls/Windows/Status/StatCtr/PopBudget"]
margin_top = 2.0 margin_top = 3.0
margin_right = 26.0 margin_right = 26.0
margin_bottom = 16.0 margin_bottom = 17.0
[node name="CoinsIcon" type="TextureRect" parent="Controls/Windows/Status/StatCtr/PopBudget/BudgetCtr"] [node name="CoinsIcon" type="TextureRect" parent="Controls/Windows/Status/StatCtr/PopBudget/BudgetCtr"]
margin_right = 14.0 margin_right = 14.0
@ -411,9 +410,9 @@ margin_bottom = 14.0
text = "0" text = "0"
[node name="PopCtr" type="HBoxContainer" parent="Controls/Windows/Status/StatCtr/PopBudget"] [node name="PopCtr" type="HBoxContainer" parent="Controls/Windows/Status/StatCtr/PopBudget"]
margin_top = 20.0 margin_top = 21.0
margin_right = 26.0 margin_right = 26.0
margin_bottom = 34.0 margin_bottom = 35.0
[node name="PopIcon" type="TextureRect" parent="Controls/Windows/Status/StatCtr/PopBudget/PopCtr"] [node name="PopIcon" type="TextureRect" parent="Controls/Windows/Status/StatCtr/PopBudget/PopCtr"]
margin_right = 14.0 margin_right = 14.0
@ -427,18 +426,63 @@ margin_right = 26.0
margin_bottom = 14.0 margin_bottom = 14.0
text = "0" text = "0"
[node name="Ticker" type="ItemList" parent="Controls/Windows/Status"] [node name="NewsBtn" type="Button" parent="Controls/Windows/Status"]
anchor_right = 1.0 anchor_left = 0.0078125
anchor_bottom = 1.0 anchor_top = 0.633158
margin_left = 622.0 anchor_right = 0.989258
anchor_bottom = 0.888972
text = "News"
flat = true
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": true
} }
[node name="NewsWindow" type="WindowDialog" parent="Controls/Windows"]
anchor_left = 0.0878906
anchor_top = 0.235
anchor_right = 0.699219
anchor_bottom = 0.578333
__meta__ = {
"_edit_use_anchors_": true
}
[node name="News" type="ItemList" parent="Controls/Windows/NewsWindow"]
anchor_left = 0.0111821
anchor_top = 0.23301
anchor_right = 0.988818
anchor_bottom = 0.961165
__meta__ = {
"_edit_use_anchors_": true
}
[node name="Brand" type="HSplitContainer" parent="Controls/Windows/NewsWindow"]
anchor_left = 0.0175719
anchor_top = 0.0242718
anchor_right = 0.982428
anchor_bottom = 0.23301
__meta__ = {
"_edit_use_anchors_": true
}
[node name="NewsBrand" type="TextureRect" parent="Controls/Windows/NewsWindow/Brand"]
margin_right = 288.0
margin_bottom = 43.0
texture = ExtResource( 2 )
[node name="NewsMotto" type="Label" parent="Controls/Windows/NewsWindow/Brand"]
margin_left = 300.0
margin_top = 14.0
margin_right = 604.0
margin_bottom = 28.0
align = 2
valign = 1
[connection signal="timeout" from="DayCycle" to="." method="_on_DayCycle_timeout"] [connection signal="timeout" from="DayCycle" to="." method="_on_DayCycle_timeout"]
[connection signal="timeout" from="RotateNews" to="Controls/Windows" method="_on_RotateNews_timeout"]
[connection signal="pressed" from="Controls/Windows/VRMode" to="." method="_on_VRMode_pressed"] [connection signal="pressed" from="Controls/Windows/VRMode" to="." method="_on_VRMode_pressed"]
[connection signal="pressed" from="Controls/Windows/Status/StatCtr/ButtonCtr/TaxBtn" to="Controls/Windows" method="_on_TaxBtn_pressed"] [connection signal="pressed" from="Controls/Windows/Status/StatCtr/ButtonCtr/TaxBtn" to="Controls/Windows" method="_on_TaxBtn_pressed"]
[connection signal="pressed" from="Controls/Windows/Status/StatCtr/ButtonCtr/ToolsBtn" to="Controls/Windows" method="_on_ToolsBtn_pressed"] [connection signal="pressed" from="Controls/Windows/Status/StatCtr/ButtonCtr/ToolsBtn" to="Controls/Windows" method="_on_ToolsBtn_pressed"]
[connection signal="pressed" from="Controls/Windows/Status/StatCtr/ButtonCtr/AdvsiorBtn" to="Controls/Windows" method="_on_AdvsiorBtn_pressed"] [connection signal="pressed" from="Controls/Windows/Status/StatCtr/ButtonCtr/AdvsiorBtn" to="Controls/Windows" method="_on_AdvsiorBtn_pressed"]
[connection signal="toggled" from="Controls/Windows/Status/StatCtr/ButtonCtr/TurtleBtn" to="." method="_on_TurtleBtn_toggled"] [connection signal="toggled" from="Controls/Windows/Status/StatCtr/ButtonCtr/TurtleBtn" to="." method="_on_TurtleBtn_toggled"]
[connection signal="toggled" from="Controls/Windows/Status/StatCtr/ButtonCtr/CheetaBtn" to="." method="_on_CheetaBtn_toggled"] [connection signal="toggled" from="Controls/Windows/Status/StatCtr/ButtonCtr/CheetaBtn" to="." method="_on_CheetaBtn_toggled"]
[connection signal="pressed" from="Controls/Windows/Status/NewsBtn" to="Controls/Windows" method="_on_NewsBtn_pressed"]

View file

@ -0,0 +1,16 @@
extends Node
const caseyverse_path = "res://json/ticker/extra_lore.json"
const is_caseyverse_path = "res://is_caseyverse.txt"
func is_caseyverse():
var file = File.new()
if file.file_exists(is_caseyverse_path):
return true
func competing_outlet():
var file = File.new()
if is_caseyverse():
file.open(caseyverse_path, File.READ)
var result = parse_json(file.get_as_text())
return result["competing_outlet"]

View file

@ -11,7 +11,7 @@ signal advisor_message(advisor, message)
# News # News
signal send_alert(message) signal send_alert(message)
signal resume_news signal rotate_news
# Policies # Policies
signal clean_air_act signal clean_air_act

View file

@ -6,7 +6,7 @@ onready var turtle_btn = $Controls/Status/StatCtr/ButtonCtr/TurtleBtn
onready var cheeta_btn = $Controls/Status/StatCtr/ButtonCtr/CheetaBtn onready var cheeta_btn = $Controls/Status/StatCtr/ButtonCtr/CheetaBtn
func _ready(): func _ready():
SimEvents.connect("resume_news", self, "_resume_rotation") SimEvents.connect("rotate_news", self, "_rotate_news")
SimEvents.connect("send_alert", self, "_stop_news") SimEvents.connect("send_alert", self, "_stop_news")
func _stop_news(): func _stop_news():

View file

@ -1,116 +1,117 @@
extends Panel #extends Panel
#
const ticker_path = "res://json/ticker/" #const ticker_path = "res://json/ticker/"
#
onready var ticker_text = $Ticker #onready var ticker_text = $Ticker
#
var news_file: String = "" #var news_file: String = ""
var rng = RandomNumberGenerator.new() #var rng = RandomNumberGenerator.new()
var all_news = [] #var all_news = []
var speices = [ #var speices = [
"Cat", # "Cat",
"Fennec", # "Fennec",
"Fox" # "Fox"
] #]
var json_files = [ #var json_files = [
"adverts.json", # "adverts.json",
# "sammy.json" # "sammy.json",
] # "kittykibble.json"
#]
func _index_news(): #
var news = _load_json() #func _index_news():
all_news.clear() # var news = _load_json()
all_news = news["ticker"] # all_news.clear()
# all_news = news["ticker"]
randomize() #
all_news.shuffle() # randomize()
# all_news.shuffle()
func _process(delta): #
var prev_json_Files = json_files #func _process(delta):
# var prev_json_Files = json_files
var city_life = [ #
"citylife.json", # var city_life = [
"kittykibble.json" # "citylife.json",
] # "kittykibble.json",
# "international.json",
if _array_check(city_life, json_files): # "citylife.json"
match SimData.has_power: # ]
true: #
prev_json_Files = json_files # if _array_check(city_life, json_files):
for files in city_life: # match SimData.has_power:
json_files.append(files) # true:
# prev_json_Files = json_files
false: # for files in city_life:
prev_json_Files = json_files # json_files.append(files)
for files in city_life: #
json_files.append(files) # false:
# prev_json_Files = json_files
func _array_check(list1, list2): # for files in city_life:
for item in list1: # json_files.append(files)
if item in list2: #
return true #func _array_check(list1, list2):
# for item in list1:
return false # if item in list2:
# return true
func _load_json(): #
var file = File.new() # return false
if file.file_exists(news_file): #
file.open(news_file, file.READ) #func _load_json():
var result = parse_json(file.get_as_text()) # var file = File.new()
return result # if file.file_exists(news_file):
# file.open(news_file, file.READ)
func _ready(): # var result = parse_json(file.get_as_text())
SimData.city_name = SimData.city_name.capitalize() # return result
SimData.mayor_name = SimData.mayor_name.capitalize() #
SimEvents.connect("send_alert", self, "_start_alert") #func _ready():
SimEvents.connect("resume_news", self, "_resume_ticker") # SimData.city_name = SimData.city_name.capitalize()
_random_news(json_files) # SimData.mayor_name = SimData.mayor_name.capitalize()
# SimEvents.connect("send_alert", self, "_start_alert")
func _start_alert(message): # SimEvents.connect("rotate_news", self, "_rotate_news")
if ticker_text.items.size() > 3: # _random_news(json_files)
ticker_text.clear() #
#func _start_alert(message):
SimData.on_alert = true # if ticker_text.items.size() > 1:
news_file = str(ticker_path + "ticker_alerts.json") # ticker_text.clear()
ticker_text.add_item(all_news) #
# SimData.on_alert = true
func _random_news(files: Array): # news_file = str(ticker_path + "ticker_alerts.json")
for file in files: # ticker_text.add_item(all_news)
news_file = str(ticker_path + file) #
_load_json() #func _random_news(files: Array):
_index_news() # for file in files:
# news_file = str(ticker_path + file)
rng.randomize() # _load_json()
randomize() # _index_news()
all_news.shuffle() #
# rng.randomize()
var news_range = rng.randi_range(0, all_news.size() - 1) # randomize()
var news_text: String = all_news[news_range] # all_news.shuffle()
#
if SimData.city_name == "Furtropolis" or "Furville" and "[outlet]" in news_text: # var news_range = rng.randi_range(0, all_news.size() - 1)
# FNN = Furtropolis/Furry News Network # var news_text: String = all_news[news_range]
news_text = news_text.replace("[outlet]", "FNN") #
else: # if SimData.city_name == "Furtropolis" or "Furville" and "[outlet]" in news_text:
news_text = news_text.replace("[outlet]", "Pawprint Press") # # FNN = Furtropolis/Furry News Network
# news_text = news_text.replace("[outlet]", "FNN")
if "[species]" in news_text: # else:
speices.shuffle() # news_text = news_text.replace("[outlet]", "Pawprint Press")
var speices_range = rng.randi_range(speices.size() - 1) #
news_text = news_text.replace("[species]", speices[speices_range]) # if "[species]" in news_text:
# speices.shuffle()
if "[city]" in news_text: # var speices_range = rng.randi_range(speices.size() - 1)
news_text = news_text.replace("[city]", SimData.city_name) # news_text = news_text.replace("[species]", speices[speices_range])
#
if "[mayor]" in news_text: # if "[city]" in news_text:
news_text = news_text.replace("[mayor]", SimData.mayor_name) # news_text = news_text.replace("[city]", SimData.city_name)
#
if ticker_text.items.size() > 3: # if "[mayor]" in news_text:
ticker_text.clear() # news_text = news_text.replace("[mayor]", SimData.mayor_name)
#
ticker_text.add_item(news_text) # if ticker_text.items.size() > 3:
# ticker_text.clear()
func _resume_ticker(): #
_random_news(json_files) # ticker_text.clear()
# ticker_text.add_item(news_text)
func _on_RotateNews_timeout(): #
_random_news(json_files) #func _on_RotateNews_timeout():
# _random_news(json_files)

View file

@ -5,12 +5,166 @@ onready var tax_window = $TaxWindow
onready var advsior_meet_window = $AdvisorMeet onready var advsior_meet_window = $AdvisorMeet
onready var tools_window = $ToolsWindow onready var tools_window = $ToolsWindow
const ticker_path = "res://json/ticker/"
const fnn_logo = "res://assets/ticker/fnn.png"
onready var ticker_text = $Status/NewsBtn
onready var ticker_box = $NewsWindow/News
onready var ticker_window = $NewsWindow
onready var news_brand = $NewsWindow/Brand/NewsBrand
onready var news_motto = $NewsWindow/Brand/NewsMotto
var other_outlet: String = ""
var news_file: String = ""
var rng = RandomNumberGenerator.new()
var all_news = []
var speices = [
"Cat",
"Fennec",
"Fox"
]
var json_files = [
"adverts.json",
"sammy.json",
"kittykibble.json",
"citylife.json"
]
func _competing_outlet():
var file = File.new()
var caseyverse_path = str(ticker_path + "caseyverse.json");
if file.file_exists(caseyverse_path):
file.open(caseyverse_path)
var result = parse_json(file.get_as_text())
result.clear()
return result["competing_outlet"]
func _load_json():
var file = File.new()
if file.file_exists(news_file):
file.open(news_file, file.READ)
var result = parse_json(file.get_as_text())
return result
func _index_news():
var news = _load_json()
all_news.clear()
all_news = news["ticker"]
randomize()
all_news.shuffle()
func _ready(): func _ready():
SimData.city_name = SimData.city_name.capitalize()
SimData.mayor_name = SimData.mayor_name.capitalize()
if SimData.city_name == "Furtropolis" and Caseyverse.is_caseyverse():
news_brand.texture = load(fnn_logo)
SimEvents.emit_signal("advisor_message", SimData.Advisors.CITY_PLANNER, 0) SimEvents.emit_signal("advisor_message", SimData.Advisors.CITY_PLANNER, 0)
SimEvents.connect("send_alert", self, "_start_alert")
SimEvents.connect("rotate_news", self, "_rotate_news")
if Caseyverse.is_caseyverse():
json_files.append("extra_lore.json")
_randomize_news(json_files)
func _process(delta): func _process(delta):
if Input.is_action_pressed("ui_cheats"): if Input.is_action_pressed("ui_cheats"):
debug_console.show() debug_console.show()
var prev_json_Files = json_files
# var city_life = [
# "citylife.json"
# ]
#
# if _array_check(city_life, json_files):
# match SimData.has_power:
# true:
# prev_json_Files = json_files
# for files in city_life:
# json_files.append(files)
#
# false:
# prev_json_Files = json_files
# for files in city_life:
# json_files.remove(files)
func _array_check(list1, list2):
for item in list1:
if item in list2:
return true
return false
func _start_alert(message):
# if ticker_text.items.size() > 1:
# ticker_text.clear()
#
# SimData.on_alert = true
# news_file = str(ticker_path + "ticker_alerts.json")
# ticker_text.add_item(all_news)
pass
func _randomize_news(files: Array):
for file in files:
news_file = str(ticker_path + file)
_load_json()
_index_news()
rng.randomize()
randomize()
files.shuffle()
var news_range = rng.randi_range(0, all_news.size() - 1)
var news_text: String = all_news[news_range]
if Caseyverse.is_caseyverse():
news_text = news_text.replace("[other_outlet]", Caseyverse.competing_outlet())
if SimData.city_name == "Furtropolis" or "Furville" and Caseyverse.is_caseyverse():
# FNN = Furtropolis/Furry News Network
news_text = news_text.replace("[outlet]", "FNN")
else:
news_text = news_text.replace("[outlet]", "Pawprint Press")
if "[species]" in news_text:
speices.shuffle()
var speices_range = rng.randi_range(speices.size() - 1)
news_text = news_text.replace("[species]", speices[speices_range])
if "[city]" in news_text:
news_text = news_text.replace("[city]", SimData.city_name)
if "[mayor]" in news_text:
news_text = news_text.replace("[mayor]", SimData.mayor_name)
if ticker_box.items.size() > 15:
ticker_box.clear()
# Prevent duplicates
var prev_news_text = ticker_text.text
if news_text == prev_news_text:
_randomize_news(json_files)
else:
json_files.shuffle()
_add_news(news_text)
func _add_news(news_item):
ticker_text.text = news_item
ticker_box.add_item(news_item)
func _on_RotateNews_timeout():
rng.randomize()
randomize()
all_news.shuffle()
json_files.shuffle()
_randomize_news(json_files)
func _on_TaxBtn_pressed(): func _on_TaxBtn_pressed():
tax_window.show() tax_window.show()
@ -20,3 +174,6 @@ func _on_AdvsiorBtn_pressed():
func _on_ToolsBtn_pressed(): func _on_ToolsBtn_pressed():
tools_window.show() tools_window.show()
func _on_NewsBtn_pressed():
ticker_window.show()