diff --git a/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache b/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache index 9d9e65074159a1e5f88dfb51d2bf09ed3b7fd55b..d271a987f2fa2633776c1cb4ae13575c7d89b696 GIT binary patch literal 11415 zc%1E84R96J72bXSn*fR0Dz*sWA0*kAKz;}i;E@oBkN^p$DulT2z59|S`}RF{_XUFr zsHlbd3&Ipy9Z=DVN|B~40mcM}p`oMDE| zR;|b?JCSd5Ku(H6l8WbCpRlxSU|vGN`|3F%g=C6yQ(kXo;7SdA zo)qOpPB7Y>TrhFka1W+|f2kXRj~4{E^S~{Kb`WJ|Bi|(AC`V!t(U5z!+n@^k~V^54z1!1*dSTDU6!Z zU~?jlf}GGM2PKqD$U$DlHx!JQhlgBCUQFbIl{KMYm=}W;D4c47ztrYeUeJSuu{f6( zm#I)!UC@9s0vd>6re6>vK)Jfxgj=}(2%A^*p1Y~H{1_um=`|8Y$o6S-Au|ZXH6R9q z7y=>(#842!Knw>l0>nrVqd<%XF$Tm~5Z8hj2O<|l9tajh5JWx}UT`$7+tq1YrM@!3 zB<+qTq8|L);^IV46eVS!3@exHm6TQ_xnd$-1Y9l`#RPIYBiA+KWgyCiWEsW7LR$?N zM>B6xkO&hGENe7~)lbj3b^Fo32GljN09LS!42p(q4C<^MuWJYE+SBZb>GL)11YJ9X z)V5I9=8&{Sx^^f@TdZq`k^GkE+TkSaL|r?Agj}j?N0Qo3(zT;VZ71v6(WJIhbnO^Y z+cI4{mZY7kX}#C>u)k!SPk-^oL|mA7Vq#U)7mLrA5-}(va1V0RbT2v)+mi;18q|I_ zKpTZxfduzF2cLFr`$kK^G!WC(EYM5{%9R;d^k-{kF07O=-tvUh;wz^BY8)x~6?%Ge zN!ppZHjkvO)U_<>(ah4dK~meu@-2k2_q+<rbAfY&y zOrj`7`~6T+Q*O7*1^MyNE?1|H5eU$MA|p{^jBiRw?bU@A5|3mfy4mgY5)!X8$ETcc zE6r1TKzx`Nc%_Y|={+=|(4U1wC>_*-zYZxk7c5%TlZ@x)^zG)Sp#eIUI>3B$ps#f- zz|36efYl&sKu@(F^eV{v3wV>(yDS5azZLc{jg1uS6DZFv40d73w_wuhnDH&Zr|OPy z(lB5k6}6B8SkwyCoYi5O(_NL$EQFTVgQ)MEN%|QaJY-Y7^DBI@OWXhA5MbXH=?*JNQz@>lU0uo_xRcO$SU>VS>dL{}M2t>@r zb+ei4&#hc}e43-9q>1QK@KalOm&;~+#E&4Oblp#8JX zv&(&8bU%m(Y?POoDJQLzAMTskWj(l>WYFEv?Rao zElo)H#EWoJahb+i)XIYixDVh1OrfGaryX>Kk*xiuE~&pR@Sl#&3eVnFj4Yb?%aHfzjI_-my{6H&YH;DIe^cF8MCFsx;{Sg|hCT4uQ>K z5bxR8jxn2H6iuUE&BBegxuU8{-@^;~`eY|LnUiaa5gQ4BDSi z_ND7nu=@M;gvQVX~6a}l|Wc;2uTcFr)7mXt!HwfV~(%4<+$D<$24rvYi-br9iba+&`X@4 z!)ECJ>HtwkXk>$qIYBQavKAbn<2Go~30fjTD~`}98+5A^^a>*MZH~~l+n`rELElM{ za=pe8`feNaJxrLf>zLe!vNOJuxAVI6`lV|MPc0*}wDse?P&l*^#yLO#go!KeP1YgZKW=-74HQck}weyC)yp z^8TR@_Z``Cu=t9hu7@(EDc`Q%xN84DmS;bBz`uOn*yG~|tUuvB`N{F2d$*rD{#A7G z+mv%|2TWrTynvuQO1q0y{}#BSeH7M(Xl+VQO##C@b80+&(^KJ zHFv9T?A?mN*IBPS&Y=fvbLbmRbLg8CY36^+5&CT#^gB+_?-HR8IYJ+{LBHn&{Q(jB zh$HkzHt3I?ppR0dMFsYVTd9kop!kgHTu>Zy3iWeh7Qb-J;+M88o^pczngs2IboOLJ z1U-IW1dne%ilkbka8eUeXR1m(3%36=5lsX7Y4z%iewB63#uTP*B2$>54W|9Ik(dSJ S(hA^n0$@l0G+d}$GXD>HCW@5+ diff --git a/isometric-park-fna/Components/TreeDeltaComponent.cs b/isometric-park-fna/Components/TreeDeltaComponent.cs --- a/isometric-park-fna/Components/TreeDeltaComponent.cs +++ b/isometric-park-fna/Components/TreeDeltaComponent.cs @@ -1,8 +1,36 @@ using Encompass; namespace isometricparkfna.Components { + public struct TreeDeltaComponent : IComponent { public int deltaTrees; + + public string deltaTreesName { + get { + if (deltaTrees <= -18) { + return "Unsustainable"; + } + else if (MathUtils.BetweenExclusive(deltaTrees, -18, -6)) + { + return "Moderately unsustainable"; + } + else if (MathUtils.Between(deltaTrees, -6, 0)) + { + return "Somewhat unsustainable"; + } + else if (deltaTrees == 0) + { + return "Break even"; + } + else if (deltaTrees > 0) + { + return "Restoration"; + } + + return "???"; + + } + } } } diff --git a/isometric-park-fna/Engines/Spawners/ContractSpawner.cs b/isometric-park-fna/Engines/Spawners/ContractSpawner.cs --- a/isometric-park-fna/Engines/Spawners/ContractSpawner.cs +++ b/isometric-park-fna/Engines/Spawners/ContractSpawner.cs @@ -106,7 +106,7 @@ int contract_amount = random_generator.Next(CONTRACT_MINIMUM, CONTRACT_MAXIMUM); - var deltaTrees = random_generator.Next(-12, 0); + var deltaTrees = random_generator.Next(-20, 3); // AddComponent AddComponent(contract, new AreaComponent { squares = squares }); diff --git a/isometric-park-fna/Renderers/ImGuiWindowRenderer.cs b/isometric-park-fna/Renderers/ImGuiWindowRenderer.cs --- a/isometric-park-fna/Renderers/ImGuiWindowRenderer.cs +++ b/isometric-park-fna/Renderers/ImGuiWindowRenderer.cs @@ -39,7 +39,7 @@ case Window.Contracts: var contracts = ReadEntities(); - var contract_data = new List<(Entity, string, ContractStatus, decimal, int)>(); + var contract_data = new List<(Entity, string, ContractStatus, decimal, string)>(); // var names = contracts.Select(entity => GetComponent(entity).DisplayName) foreach(var e in contracts) @@ -47,7 +47,7 @@ var name = GetComponent(e).DisplayName; var status = GetComponent(e).status; var amount = GetComponent(e).amount; - var tree_delta = GetComponent(e).deltaTrees; + var tree_delta = GetComponent(e).deltaTreesName; contract_data.Add((e, name, status, amount, tree_delta)); } diff --git a/isometric-park-fna/UI/ContractsWindow.cs b/isometric-park-fna/UI/ContractsWindow.cs --- a/isometric-park-fna/UI/ContractsWindow.cs +++ b/isometric-park-fna/UI/ContractsWindow.cs @@ -20,10 +20,10 @@ public static decimal selected_amount; public static bool show_all; - private static int selected_tree_delta; + private static string selected_tree_delta; public static void Render(ImFontPtr font, ImGuiWindowBridgeEngine engine, - List<(Entity entity, string name, ContractStatus status, decimal amount, int delta_trees)> contracts) + List<(Entity entity, string name, ContractStatus status, decimal amount, string delta_trees)> contracts) { bool newShow = true; @@ -109,7 +109,32 @@ ImGui.Separator(); ImGui.Text(string.Format("Amount: ${0}/mo.", ContractsWindow.selected_amount)); - ImGui.Text(string.Format("Trees: {0}", ContractsWindow.selected_tree_delta)); + + if (ContractsWindow.selected_tree_delta != null) + { + ImGui.Text("Sustainability: "); + + + ImGui.SameLine(); + var color = new Num.Vector4(1f, 1f, 1f, 1f); + switch (ContractsWindow.selected_tree_delta) + { + case "Unsustainable": + color = new Num.Vector4(0.95f, 0.25f, 0.25f, 1f); + break; + case "Restoration": + color = new Num.Vector4(0.25f, 0.95f, 0.25f, 1f); + break; + case "Moderately unsustainable": + case "Somewhat unsustainable": + color = new Num.Vector4(0.95f, 0.65f, 0.25f, 1f); + break; + } + ImGui.TextColored(color, ContractsWindow.selected_tree_delta); + } + + + if (selected_status == ContractStatus.Proposed) { if (ImGui.Button("Select"))