Imperator: Rome  : Dev Diary 13 – Carnet du 20 août 2018

Bannière Imperator Rome

par Johan

Bonjour à tous et bienvenue dans un autre carnet de développement pour Imperator. Aujourd’hui c’est le numéro porte-bonheur 13, et nous allons parler de comment la politique dans les républiques fonctionne, ou plus spécifiquement du Sénat.

Le Sénat, dans une république, a 100 sièges, et chaque siège appartient à l’une des cinq factions. Chaque personnage adulte dans une république a une prédilection pour chaque faction, et en soutient une. Chaque faction a aussi un dirigeant, qui est en général le personnage le plus important qui soutient cette faction.

En fonction de la faction à laquelle appartient le dirigeant de la république, celle-ci reçoit plusieurs bonus ou malus.

  • Faction civique : +25 % de revenus des impôts, des bâtiments 10 % moins chers et plus rapides
  • Faction militaire : +25 % de moral terrestre, +25 % de moral naval
  • Faction marchande : +25 % de revenu commercial, +5 de réputation diplomatique
  • Faction religieuse : +10 % de durée des augures, conversion religieuse 33 % moins chère
  • Faction populiste : +10 % des coûts de puissances

Pour les moddeurs : Vous pouvez librement ajouter ou supprimer des factions et les rendre disponibles à des types de gouvernements différents, ou avoir n’importe quel type de trigger permettant à la faction d’en donner des uniques.

Comme vous pouvez le remarquer, d’avoir les populistes au pouvoir n’est pas entièrement avantageux.

Le nombre de sièges au Sénat change avec le temps, en fonction de facteurs différents, avec le charisme du dirigeant de faction qui a toujours un impact sur l’attraction des sièges.

Si vous voulez renforcer la position d’un parti du Sénat instantanément, vous pouvez toujours dépenser de la puissance oratoire pour convaincre 10 sièges de rejoindre cette faction à la place. Cependant, en faisant cela vous augmentez votre tyrannie.

Donc pourquoi devez-vous tenir compte de la composition du Sénat ? Il y a trois types d’activités où le Sénat va avoir un impact sur votre capacité de faire ce que vous voulez à tout moment, comme un dirigeant dans une monarchie absolue.

Le Sénat peut complètement vous bloquer si le soutien pour l’action que vous voulez faire est trop bas, avec moins de 40 sénateurs qui la soutiennent. Et si moins de 60 sénateurs soutiennent l’action, vous pouvez la forcer, mais vous allez gagner de la tyrannie à cause de cette action.

Il y a trois différentes catégories d’actions qui demandent l’approbation du Sénat.

  • Tout changement de lois nécessite l’approbation du Sénat
  • De nombreuses interactions avec les personnages, comme le bannissement, l’emprisonnement etc.
  • Toutes les interactions diplomatiques avec les autres pays.

La composition du Sénat et ce que vous voulez faire est ce qui détermine s’il soutiendra ou non une action. Il est très probable que la faction militaire soutienne de nouvelles guerres, mais même quelques-uns de leurs sénateurs seront opposés aux guerres si vous avez de la lassitude de guerre, peu d’effectifs ou êtes actuellement en guerre.

Lorsque vous agissez, cela a souvent un impact sur les personnages de votre pays. La loyauté est perdue ou acquise en fonction de l’adhésion aux factions, et des sièges sont gagnés ou perdus par les différentes factions.

Pour les moddeurs : Tout ceci peut être contrôlé entièrement à travers une langue de scripts puissante.

Voici un exemple des calculs du Sénat pour une déclaration de guerre :

####################################
# Declare War
####################################
declare_war = {

    approval = {
    
        military_party = {
            base = 0
            always_modifier = {
                add = 0.5
                has_civil_war = no
            }
            always_modifier = {
                add = {
                    value = 0
                    add = root.manpower_percentage
                    max = 0.5
                }
            }
            always_modifier = {
                add = -0.3
                war = yes
            }
            always_modifier = {
                add = {
                    value = 20
                    subtract = root.has_war_exhaustion
                    divide = 50
                    max = 0.2
                }
            }
            #######generic
            always_modifier = {
                add = {
                    value = 0.01
                    multiply = military_senate_support_svalue
                    max = 0.2
                }
            }
            always_modifier = {
                add = {
                    value = 0.01
                    multiply = root.current_ruler.martial
                }
            }
            always_modifier = {
                add = 0.15
                OR = {
                    AND = {
                        current_ruler = {
                            num_of_friends >= 1
                        }
                        any_character = {
                            is_friend = root.current_ruler
                            is_party_leader_of = root.party:military_party
                        }
                    }
                    current_ruler = {
                        is_party_leader_of = root.party:military_party
                    }
                }
            }
            always_modifier = {
                add = {
                    value = 0
                    if = {
                        limit = {
                            root.current_ruler = {
                                party = military_party
                            }
                        }
                        add = 0.2
                        add = {
                            value = 0
                            add = root.tyranny
                            divide = 100
                        }
                        max = 0.4
                    }
                }
            }
            always_modifier = {
                add = -0.15
                current_ruler = {
                    num_of_rivals >= 1
                }
                any_character = {
                    is_rival = root.current_ruler
                    is_party_leader_of = root.party:military_party
                }
            }
            always_modifier = {
                add = 0.1
                government = aristocratic_republic
            }
        }
    
        civic_party = {
            base = 0
            always_modifier = {
                add = -0.5
                has_civil_war = yes
            }
            always_modifier = {
                add = 0.15
                NOT = { current_ruler = { has_same_culture_group_as = scope:target.current_ruler } }
            }
            always_modifier = {
                add = 0.15
                NOT = { current_ruler = { has_same_culture_as = scope:target.current_ruler } }
            }
            always_modifier = {
                add = {
                    value = 20
                    subtract = root.has_war_exhaustion
                    divide = 100
                    max = 0.1
                }
            }
            always_modifier = {
                add = 0.2
                scope:target = {
                    is_tribal = yes
                }
            }
            #######generic
            always_modifier = {
                add = {
                    value = 0.01
                    multiply = civic_senate_support_svalue
                    max = 0.2
                }
            }
            always_modifier = {
                add = {
                    value = 0.01
                    multiply = root.current_ruler.finesse
                }
            }
            always_modifier = {
                add = 0.15
                OR = {
                    AND = {
                        current_ruler = {
                            num_of_friends >= 1
                        }
                        any_character = {
                            is_friend = root.current_ruler
                            is_party_leader_of = root.party:civic_party
                        }
                    }
                    current_ruler = {
                        is_party_leader_of = root.party:civic_party
                    }
                }
            }
            always_modifier = {
                add = {
                    value = 0
                    if = {
                        limit = {
                            root.current_ruler = {
                                party = civic_party
                            }
                        }
                        add = 0.2
                        add = {
                            value = root.tyranny
                            divide = 100
                        }
                        max = 0.4   
                    }
                }
            }
            always_modifier = {
                add = -0.15
                current_ruler = {
                    num_of_rivals >= 1
                }
                any_character = {
                    is_rival = root.current_ruler
                    is_party_leader_of = root.party:civic_party
                }
            }
            always_modifier = {
                add = 0.1
                government = democratic_republic
            }
        }
        religious_party = {
            base = 0.1
            always_modifier = {
                add = -0.5
                has_civil_war = yes
            }
            always_modifier = {
                add = 0.2
                NOT = { current_ruler = { has_same_religion_as = scope:target.current_ruler } }
            }
            #######generic
            always_modifier = {
                add = {
                    value = 0.01
                    multiply = religious_senate_support_svalue
                    max = 0.2
                }
            }
            always_modifier = {
                add = {
                    value = 0.01
                    multiply = root.current_ruler.zeal
                }
            }
            always_modifier = {
                add = 0.15
                OR = {
                    AND = {
                        current_ruler = {
                            num_of_friends >= 1
                        }
                        any_character = {
                            is_friend = root.current_ruler
                            is_party_leader_of = root.party:religious_party
                        }
                    }
                    current_ruler = {
                        is_party_leader_of = root.party:religious_party
                    }
                }
            }
            always_modifier = {
                add = {
                    value = 0
                    if = {
                        limit = {
                            root.current_ruler = {
                                party = religious_party
                            }
                        }
                        add = 0.2
                        add = {
                            value = 0
                            add = root.tyranny
                            divide = 100
                        }
                        max = 0.4
                    }
                }
            }
            always_modifier = {
                add = -0.15
                current_ruler = {
                    num_of_rivals >= 1
                }
                any_character = {
                    is_rival = root.current_ruler
                    is_party_leader_of = root.party:religious_party
                }
            }
            always_modifier = {
                add = 0.1
                government = theocratic_republic
            }
        }
        mercantile_party = {
            base = 0.5
            always_modifier = {
                add = -0.5
                has_civil_war = yes
            }
            always_modifier = {
                add = -0.5
                trade_access_with = scope:target
            }
            always_modifier = {
                add = {
                    if = {
                        limit = {
                            root.has_war_exhaustion <= 10
                        }
                        value = 10
                        subtract = root.has_war_exhaustion
                        divide = 50
                        max = 0.2
                    }
                    else = {
                        value = 0
                        subtract = root.has_war_exhaustion
                        add = 10
                        divide = 25
                        max = -0.4
                    }
                }
            }
            #######generic
            always_modifier = {
                add = {
                    value = 0.01
                    multiply = mercantile_senate_support_svalue
                    max = 0.2
                }
            }
            always_modifier = {
                add = {
                    value = 0.01
                    multiply = root.current_ruler.charisma
                }
            }
            always_modifier = {
                add = 0.15
                OR = {
                    AND = {
                        current_ruler = {
                            num_of_friends >= 1
                        }
                        any_character = {
                            is_friend = root.current_ruler
                            is_party_leader_of = root.party:mercantile_party
                        }
                    }
                    current_ruler = {
                        is_party_leader_of = root.party:mercantile_party
                    }
                }
            }
            always_modifier = {
                add = {
                    value = 0
                    if = {
                        limit = {
                            root.current_ruler = {
                                party = mercantile_party
                            }
                        }
                        add = 0.2
                        add = {
                            value = 0
                            add = root.tyranny
                            divide = 100
                        }
                        max = 0.4
                    }
                }
            }
            always_modifier = {
                add = -0.15
                current_ruler = {
                    num_of_rivals >= 1
                }
                any_character = {
                    is_rival = root.current_ruler
                    is_party_leader_of = root.party:mercantile_party
                }
            }
            always_modifier = {
                add = 0.1
                government = oligarchic_republic
            }
        }
        populist_party = {
            base = 0.1
            always_modifier = {
                add = 0.15
                scope:target = {
                    is_monarchy = yes
                }
            }
            #######generic
            always_modifier = {
                add = {
                    value = 0.01
                    multiply = populist_senate_support_svalue
                    max = 0.2
                }
            }
            always_modifier = {
                add = 0.15
                OR = {
                    AND = {
                        current_ruler = {
                            num_of_friends >= 1
                        }
                        any_character = {
                            is_friend = root.current_ruler
                            is_party_leader_of = root.party:populist_party
                        }
                    }
                    current_ruler = {
                        is_party_leader_of = root.party:populist_party
                    }
                }
            }
            always_modifier = {
                add = {
                    value = 0
                    if = {
                        limit = {
                            root.current_ruler = {
                                party = populist_party
                            }
                        }
                        add = 0.3
                        add = {
                            value = 0
                            add = root.tyranny
                            divide = 100
                        }
                        max = 0.6   
                    }
                }
            }
            always_modifier = {
                add = -0.15
                current_ruler = {
                    num_of_rivals >= 1
                }
                any_character = {
                    is_rival = root.current_ruler
                    is_party_leader_of = root.party:populist_party
                }
            }
        }
    }
    
    loyalty = {
        military_party = 0.1
        populist_party = -0.1
    }
    
    support = {
        civic_party = -1
        military_party = 3
        mercantile_party = -1
        populist_party = -1
    }
}

Ne ratez pas le carnet de la semaine prochaine, dans lequel nous allons parler encore plus des politiques avec les lois et les fonctions.