mculig / TemtemTracker

A tracker for the MMO Temtem
GNU General Public License v3.0
30 stars 14 forks source link

[Feature] Add battle tracker and migrate to tabs #11

Closed Danil0v3s closed 3 years ago

Danil0v3s commented 3 years ago

The goal of this PR is to create a simple battle tracker which tells me the enemy weakness/strenghts. I was going to create another tool for this but decided to not reinvent the wheel and instead colaborate with this.

I'm subdiving this PR into two pieces:

  1. Migrating the previous content to tabs, including the Statistics Window
  2. Creating a new tab which we'll feed with data from whatever API provides what we need

Please bear in mind I'm not an experienced C# experienced programmer.

mculig commented 3 years ago

Hello.

Sadly, I must decline your pull request for multiple reasons.

The 1st reason is the goal. According to the Temtem ToS:

You agree that you will not, in whole or in part or under any circumstances, do the following: [...] Cheating: Create, use, offer, promote, advertise, make available and/or distribute the following or assist therein: [...] cheats; i.e. methods not expressly authorized by Crema, influencing and/or facilitating the gameplay, including exploits of any in-game bugs, and thereby granting you and/or any other user an advantage over other players not using such methods;

The argument that this is already information present on the wiki and that people are looking it up is also one that is known to me, however I think the automation aspect of this makes that far more troublesome and turn it from something that can not really be prevented to directly eliminating an element of skilled gameplay through a tool.

The opinions expressed by TMTrainer and other moderators (at the time he was not yet working for Crema) in the following thread are, in my opinion, also relevant: https://www.playtemtem.com/forums/threads/temtaco.6209/post-28828

Even more relevant is YaW's quote from the Discord, inserted there as an image.

The 2nd reason is that I do not believe migrating content to tabs is a good idea. It is one I considered when making the statistics window initially, however the cluttering of the main window with additional information when it is already so heavily packed and large was a factor that made me decide against it.

The 3rd reason is that I have slowly but surely begun working on an Electron + Angular UI to eventually (when I am able to, given the time I have available) replace the C# UI. When I first migrated the entirety of TemtemTracker from Java to C# to get rid of unnecessary dependencies and overhead, it was a far simpler program. Adding new features, more settings, and styles to it in a way that allowed it to switch these settings on the fly and just keep trucking slowly but surely led to a messy set of events, locks to prevent multiple file-writes at the same time from competing threads and a plethora of unnecessary garbage. There is a lot of spaghetti there that I have been far too busy to clean up. My hope is that setting up a simpler Electron + Angular app will let me capitalize on some of the features of Angular that .NET sorely lacks (like the power of Angular Material Tables) and use my extensive experience in that area to create an overall cleaner application (especially given I already know the structure of the current features).

The 4th and final reason is the intention to use external APIs, meaning building in networking code and actively connecting to external endpoints. Networking is one thing I intentionally avoided adding to TemtemTracker, although if I am successful with my work on the Electron + Angular UI that won't be entirely true anymore. TemtemTracker is an app that looks at your running processes and takes regular screenshots (albeit particular, small snippets to improve performance). Adding networking capability to such an application is a security and trust issue, and while I've seen and heard plenty of people express opinions that demonstrate very clearly that this is not an active concern in their mind, I am still of the opinion that TemtemTracker is better off not connecting to any external resources to avoid anyone claiming any foul play with regards to data security.