Freeciv/Τα μαθηματικά του freeciv

Από Βικιβιβλία

Παραγωγή γεωμονάδας[επεξεργασία]

Η παραγωγή-εκροή ενός γεωμονάδας στο freeciv είναι τριών ειδών:

  • Φαγητό (που απεικονίζεται στο παιχνίδι με το δέμα σιταρίου)
  • Παραγωγή (που απεικονίζεται με την ασπίδα και αντιπροσωπεύει πρώτες ύλες και επεξεργασία τους που δεν προορίζεται για τροφή και αξιοποιείται από την πόλη)
  • Εμπόριο (που αντιπροσωπεύει το προιον που προορίζεται για εμπόριο)

Προκειμένου να υπολογίσουμε την συνολική εκροή της γεωμονάδας:

  • Αρχίζουμε με τη βάση εκροής του συγκεκριμένου τύπου γεωμονάδας.
  • Προσθέτουμε τυχών μπόνους από ειδικούς πόρους που μπορεί να έχει η μονάδα
  • Προσθέτουμε τυχών μπόνους από βελτιώσεις της γής:
    • Προσθέτουμε επιπλέον στην εκροή φαγητού αν η γεωμονάδα έχει ύδρευση ή είναι το κέντρο της πόλης
    • Προσθέτουμε επιπλέον στην εκροή των ασπίδων αν η γεωμονάδα έχει ορυχείο (έρημος,λόφοι,βουνά)
    • Προσθέτουμε επιπλέον στην εκροή εμπορίου αν η γεωμονάδα έχει δρόμο (χωράφι,πεδιάδα ή έρημος)
    • Προσθέτουμε επιπλέον στο εμπόριο αν η γεωμονάδα έχει ποτάμι
  • Προσθέτουμε στις ασπίδες το μπόνους του σιδηρόδρομου [50% στο προκαθορισμένο σύνολο κανόνων] αν η γεωμονάδα έχει σιδηρόδρομο
  • Προσθέτουμε μπόνους από το αποτέλεσμα "Output_Add_Tile" (όπως από Λιμάνι και Παραθαλλάσια πλατφορμα).
  • Προσθέτουμε μπόνους από το αποτέλεσμα "Output_Inc_Tile_Celebrate" αν η γεωμονάδα έχει μια συγκεκριμένου τύπου εκροή και η πόλη εορτάζει [πχ +1 εμπόριο επιπλέον στη μοναρχία και τον κομμουνισμό]
  • Προσθέτουμε μπόνους από το αποτέλεσμα "Output_Inc_Tile" αν η γεωμονάδα έχει μια συγκεκριμένου τύπου εκροή [πχ +1 εμπόριο επιπλέον στη Ρεπουμπλικανία και Δημοκρατία]
  • Προσθέτουμε ποσοστό μπόνους από το αποτέλεσμα "Output_Per_Tile" [όπως σε υπερλεωφόρους και υπεραγορές]
  • Αφαιρούμε 1 μονάδα αν η εκροές είναι μεγαλύτερες της τιμής του αποτελέσματος "Output_Penalty_Tile" [όπως η επίπτωση από εκροές μεγαλύτερες τον δύο μονάδων στην Αναρχία και το Δεσποτισμό].
  • Αφαίρεσε επίπτωση από μόλυνση [50% στο προκαθορισμένο σύνολο κανόνων] αν η γεωμονάδα έχει μόλυνση.
  • Αφαίρεσε επιπτωση πυρηνικού χειμώνα [50% στο προκαθορισμένο σύνολο κανόνων] αν η γεωμόναδα εχει πυρηνικό χειμώνα.
  • Εφάρμοσε ελάχιστες μονάδες εκροής[1/1/0 στο προκαθορισμένο σύνολο κανόνων] αν η γεωμονάδα είναι το κέντρο της πόλης

Τα ονόματα πχ Output_Inc_Tile είναι ονόματα κανόνων που θα βρείετε στο αρχείο effects.ruleset το οποίο αρχείο μπορείτε να βρείτε μαζί με τα άλλα που συναποτελούν το σύνολο κανόνων (ruleset) του παιχνιδίου.

Δες και τη συνάρτηση get_worked_tile_output() και city_tile_output() στο αρχείο common/city.c.