cyberwar-2025 issueshttps://gitlab.nps.edu/global-ecco/cyberwar/-/issues2019-07-22T08:23:24-07:00https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/9Server node rebuilding option after a Deny has destroyed a player's server no...2019-07-22T08:23:24-07:00David "Ty" LongServer node rebuilding option after a Deny has destroyed a player's server node in their own local domain.When an opposing player is successful with a Deny attack, that server node is permanently removed from the board. However, it might be of use to allow for rebuilding of server nodes in a player's own local domain. A time and resource cos...When an opposing player is successful with a Deny attack, that server node is permanently removed from the board. However, it might be of use to allow for rebuilding of server nodes in a player's own local domain. A time and resource cost would be involved to rebuild that server node.
We can throw the rebuild option under the OCO Acquire effect or on the DCO Secure effect with a sub option to rebuild with a high cost of APs.https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/15Make movement on the board non-linear (an idea for another version).2019-07-11T10:04:22-07:00David "Ty" LongMake movement on the board non-linear (an idea for another version).To simulate cyber actions in real world, e should look in to making non-adjacent moves for acquires or exploits. This will require a whole game mechanic redesign which is not applicable in this version of CW: 2025.To simulate cyber actions in real world, e should look in to making non-adjacent moves for acquires or exploits. This will require a whole game mechanic redesign which is not applicable in this version of CW: 2025.https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/16Allow players to store/bank their action/resource points for future use in la...2019-07-08T08:38:03-07:00David "Ty" LongAllow players to store/bank their action/resource points for future use in later rounds.Might also help with implementing the whole "Implant Player's Base" condition. We can keep the minimum of 2 action/resource points rule, but with a banked points system players can choose to payout the ransom of an arbitrary value instea...Might also help with implementing the whole "Implant Player's Base" condition. We can keep the minimum of 2 action/resource points rule, but with a banked points system players can choose to payout the ransom of an arbitrary value instead of all the points acquired from their controlled server nodes.https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/17Make Tier 4 server nodes harder to attack (easier to defend) by upping the ma...2019-07-08T08:37:57-07:00David "Ty" LongMake Tier 4 server nodes harder to attack (easier to defend) by upping the math or possibly add alternate paths from the Player's base to the Tier 3 server nodes.We have found out that soon after the 6th in players start moving towards other player's bases. Their success rate is pretty standard; however, I think there should be a "defenders advantage" on the Tier 4 server nodes to keep the game i...We have found out that soon after the 6th in players start moving towards other player's bases. Their success rate is pretty standard; however, I think there should be a "defenders advantage" on the Tier 4 server nodes to keep the game in motion. Another option is to add one to three alternate paths from the Player's base to the Tier 3 server nodes. This might alter the mechanics in a way that players will not secure their Tier 4 server nodes; however, we can maybe force them to take those Tier 4 nodes first and then open the paths to the Tier 3 when they acquire those server nodes.https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/20Action points generated based on tier?2019-07-08T08:37:51-07:00Heine, Eric RAction points generated based on tier?Suggestion from student that the number of action points generated for a server node is based on what tier it's in (so tier 4 nodes would be worth 4, tier 3 worth 3, etc.)Suggestion from student that the number of action points generated for a server node is based on what tier it's in (so tier 4 nodes would be worth 4, tier 3 worth 3, etc.)https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/31Player indicator of future moves/orders.2019-07-15T18:51:59-07:00David "Ty" LongPlayer indicator of future moves/orders.To better assist the player in their orders adjudication list a fix to incorporate some sort of indicator of moves might be necessary. This indicator could be a slightly colorized server node (e.g. Red player has a light red indicator or...To better assist the player in their orders adjudication list a fix to incorporate some sort of indicator of moves might be necessary. This indicator could be a slightly colorized server node (e.g. Red player has a light red indicator or maybe a server node outline color change) that lets the player know they are going to make that move.
When the round ends and the adjudication is complete the temporary indicators are replaced with either the successful (new server node state) or unsuccessful move (server node's original state).https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/32Analyze effect should last for two rounds2019-07-08T08:37:33-07:00David "Ty" LongAnalyze effect should last for two roundsTo make players use Analyze more often, let's have the effect of player's domain scanning with Analyze last for a proposed two rounds as of now.To make players use Analyze more often, let's have the effect of player's domain scanning with Analyze last for a proposed two rounds as of now.https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/42Music & Sound Effects2019-07-16T15:01:04-07:00David "Ty" LongMusic & Sound EffectsSomething similar to what CyberStrike has for end of round audio cues and some player interacted sound effects.Something similar to what CyberStrike has for end of round audio cues and some player interacted sound effects.https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/47UIB Modal Spacing and Minor Redesign2019-07-17T11:04:39-07:00David "Ty" LongUIB Modal Spacing and Minor Redesignhttps://gitlab.nps.edu/global-ecco/cyberwar/-/issues/74Random Crash2019-08-01T12:19:19-07:00David "Ty" LongRandom CrashThis has happened twice so far in two separate games.
```++++++++++++++++ Turn Number: 29 ++++++++++++++++
Multi server attack: Defender = 4 Attacker = 4 4 1
Dice: 4 Odds: 31: Success to Defender!
Basic attack: Defender = 4 Attacker (...This has happened twice so far in two separate games.
```++++++++++++++++ Turn Number: 29 ++++++++++++++++
Multi server attack: Defender = 4 Attacker = 4 4 1
Dice: 4 Odds: 31: Success to Defender!
Basic attack: Defender = 4 Attacker (Orange) = 4
Dice: 63 Odds: 50: Fail to Defender!
Multi server attack: Defender = 1 Attacker = 4 4
Dice: 20 Odds: 11: Fail to Defender!
Basic attack: Defender = 3 Attacker (Purple) = 4
Dice: 63 Odds: 43: Fail to Defender!
Exploit attack: Defender = 1 Attacker = 4
Dice: 73 Odds: 20: Fail to Defender!
Exploit attack: Defender = 4 Attacker = 4
Dice: 10 Odds: 50: Success to Defender!
Deny attack: Defender = 1 Attacker (undefined) = 4
Dice: 60 Odds: 20: Fail to Defender!
Deny attack: Defender = 4 Attacker (undefined) = 4
Dice: 33 Odds: 50: Success to Defender!
Scanning node: Orange 7
Scanning node: Red 6
error: uncaughtException: Cannot read property 'length' of undefined date=Thu Aug 01 2019 13:15:31 GMT-0600 (MDT), pid=6636, uid=501, gid=20, cwd=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1, execPath=/usr/local/bin/node, version=v8.9.1, argv=[/usr/local/bin/node, /Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/app.js], rss=181215232, heapTotal=159752192, heapUsed=109622336, external=20564222, loadavg=[2.32275390625, 2.12548828125, 2.03857421875], uptime=317635, trace=[column=89, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/shared/util/playerUtil.js, function=__dirname.PlayerUtil.hasPlayerTakenTurn, line=9, method=hasPlayerTakenTurn, native=false, column=86, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/gameLogic/gameController.js, function=null, line=101, method=null, native=false, column=12, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/underscore/underscore.js, function=Function._.every._.all, line=245, method=all, native=false, column=12, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/gameLogic/gameController.js, function=allPlayersSubmittedTurns, line=99, method=null, native=false, column=7, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/gameLogic/gameController.js, function=finishTurn, line=91, method=null, native=false, column=3, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/gameLogic/gameController.js, function=Object.__dirname.performAction, line=42, method=performAction, native=false, column=20, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/game.js, function=Object.submitAction [as callback], line=178, method=submitAction [as callback], native=false, column=10, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/game.js, function=performLockedAction, line=254, method=null, native=false, column=11, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/game.js, function=null, line=265, method=null, native=false, column=5, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/game.js, function=null, line=302, method=null, native=false, column=16, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/mongoose/lib/model.js, function=null, line=4462, method=null, native=false, column=16, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/mongoose/lib/utils.js, function=null, line=264, method=null, native=false, column=11, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/mongoose/lib/query.js, function=_hooks.execPost, line=4258, method=execPost, native=false, column=16, file=/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/mongoose/node_modules/kareem/index.js, function=null, line=135, method=null, native=false, column=7, file=internal/process/next_tick.js, function=_combinedTickCallback, line=131, method=null, native=false, column=9, file=internal/process/next_tick.js, function=process._tickCallback, line=180, method=_tickCallback, native=false], stack=[TypeError: Cannot read property 'length' of undefined, at __dirname.PlayerUtil.hasPlayerTakenTurn (/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/shared/util/playerUtil.js:9:89), at /Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/gameLogic/gameController.js:101:86, at Function._.every._.all (/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/underscore/underscore.js:245:12), at allPlayersSubmittedTurns (/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/gameLogic/gameController.js:99:12), at finishTurn (/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/gameLogic/gameController.js:91:7), at Object.__dirname.performAction (/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/gameLogic/gameController.js:42:3), at Object.submitAction [as callback] (/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/game.js:178:20), at performLockedAction (/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/game.js:254:10), at /Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/game.js:265:11, at /Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/server/game.js:302:5, at /Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/mongoose/lib/model.js:4462:16, at /Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/mongoose/lib/utils.js:264:16, at _hooks.execPost (/Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/mongoose/lib/query.js:4258:11), at /Volumes/Vault/Code/Git/Projects/cyberwar/Angular/cyberwar-ang1/node_modules/mongoose/node_modules/kareem/index.js:135:16, at _combinedTickCallback (internal/process/next_tick.js:131:7), at process._tickCallback (internal/process/next_tick.js:180:9)]
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! CyberWar-2025@1.0.0 start: `node app.js`
npm ERR! Exit status 1```https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/75Edit/Create artifacts for game display in the ECCO lobby2019-08-23T19:25:00-07:00Stork, Kirk Akastork@nps.eduEdit/Create artifacts for game display in the ECCO lobbyThe files in /lobby-artifacts need to be made to match the game. The files in there now are examples from other games -- try to keep the length/format similar for each. Please see commit 182d135e1e05dfc99dc4d997bdcce3e849796c1e.
The "...The files in /lobby-artifacts need to be made to match the game. The files in there now are examples from other games -- try to keep the length/format similar for each. Please see commit 182d135e1e05dfc99dc4d997bdcce3e849796c1e.
The "thumbnail.png" is the main icon that represents the game in the lobby.David "Ty" LongDavid "Ty" Longhttps://gitlab.nps.edu/global-ecco/cyberwar/-/issues/83Add Code Pipeline for CI/CD to TEST2019-09-06T14:12:24-07:00Stork, Kirk Akastork@nps.eduAdd Code Pipeline for CI/CD to TESTStork, Kirk Akastork@nps.eduStork, Kirk Akastork@nps.eduhttps://gitlab.nps.edu/global-ecco/cyberwar/-/issues/88Can we add a racetrack leaderboard like Cyberstrike Advanced based on action ...2019-09-24T10:56:26-07:00Lee, Ryan SCan we add a racetrack leaderboard like Cyberstrike Advanced based on action points available each turn?https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/93Look into customizable display names2021-07-16T10:59:02-07:00Heine, Eric RLook into customizable display namesSee what it would take for players to be able to customize their display name (WMDeez, FrostByte, etc)See what it would take for players to be able to customize their display name (WMDeez, FrostByte, etc)https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/96I want to know how the Action Points are calculated2021-05-28T15:13:40-07:00Lee, Ryan SI want to know how the Action Points are calculatedhttps://gitlab.nps.edu/global-ecco/cyberwar/-/issues/97I want to know the chances of success for an action before I take it2021-05-28T15:16:40-07:00Lee, Ryan SI want to know the chances of success for an action before I take itEven if a percentage chance isn't possible, perhaps a three-tiered rating, such as Low chance, Medium chance, high chance.Even if a percentage chance isn't possible, perhaps a three-tiered rating, such as Low chance, Medium chance, high chance.https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/100I want the rulebook to explain how to play as an observer2021-07-14T09:11:09-07:00Lee, Ryan SI want the rulebook to explain how to play as an observerhttps://gitlab.nps.edu/global-ecco/cyberwar/-/issues/101I want the rule book to contain a glossary of icons and symbols2021-07-14T09:12:36-07:00Krause, Michael (CIV)I want the rule book to contain a glossary of icons and symbolsCould include a table in the section _Network_ that matches the terms used in the game (e.g., base, node, etc.) to their icons.Could include a table in the section _Network_ that matches the terms used in the game (e.g., base, node, etc.) to their icons.https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/104Add ability to repair denied nodes2022-12-08T11:06:46-08:00Heine, Eric RAdd ability to repair denied nodesSome action to reroute around denied nodes or to fully repair a denied node so that people can work around it if they have enough action points. But somehow eliminated players can't be brought back.Some action to reroute around denied nodes or to fully repair a denied node so that people can work around it if they have enough action points. But somehow eliminated players can't be brought back.https://gitlab.nps.edu/global-ecco/cyberwar/-/issues/105Add ability to fake a denied node2022-12-08T11:07:55-08:00Heine, Eric RAdd ability to fake a denied nodeEssentially a manipulate action, but it makes the node look denied when it is still functional.Essentially a manipulate action, but it makes the node look denied when it is still functional.