fac_neutral, bandit_personality, [(trp_mountain_bandit, 15, 58)]),
    ("sea_raider_lair", "Sea Raider Landing",
     icon_bandit_lair | carries_goods(2) | pf_is_static | pf_hide_defenders, 0,
     fac_neutral, bandit_personality, [(trp_sea_raider, 15, 50)]),
    ("looter_lair", "Kidnappers' Hideout",
     icon_bandit_lair | carries_goods(2) | pf_is_static | pf_hide_defenders, 0,
     fac_neutral, bandit_personality, [(trp_looter, 15, 25)]),
    ("bandit_lair_templates_end", "{!}bandit_lair_templates_end",
     icon_axeman | carries_goods(2) | pf_is_static, 0, fac_outlaws,
     bandit_personality, [(trp_sea_raider, 15, 50)]),
    ("leaded_looters", "Band of robbers",
     icon_axeman | carries_goods(8) | pf_quest_party, 0, fac_neutral,
     bandit_personality, [(trp_looter_leader, 1, 1), (trp_looter, 3, 3)]),

    ##diplomacy begin
    ("dplmc_spouse", "Your spouse", icon_woman | pf_civilian | pf_show_faction,
     0, fac_neutral, merchant_personality, []),
    ("dplmc_gift_caravan", "Your Caravan",
     icon_mule | carries_goods(25) | pf_show_faction, 0, fac_commoners,
     escorted_merchant_personality, [(trp_caravan_master, 1, 1),
                                     (trp_caravan_guard, 5, 25)]),
    #recruiter kit begin
    ("dplmc_recruiter", "Recruiter", icon_gray_knight | pf_show_faction, 0,
     fac_neutral, merchant_personality, [(trp_dplmc_recruiter, 1, 1)]),
    #recruiter kit end
    ##diplomacy end
]

import mod_manager
party_templates = mod_manager.merge("party_templates", party_templates)
    ("blank_quest_11", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_12", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_13", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_14", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_15", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_16", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_17", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_18", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_19", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_20", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_21", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_22", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_23", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_24", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_25", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_26", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("blank_quest_27", "{!}blank_quest", qf_random_quest, "{!}placeholder"),
    ("collect_men", "Collect Five Men", 0,
     "{!}{s9} asked you to collect at least 5 men before you move against the bandits threatening the townsmen. You can recruit soldiers from villages as well as town taverns. You can find {s9} at the tavern in {s4} when you have think you have enough men."
     ),
    ("learn_where_merchant_brother_is", "Learn Where the Hostages are Held.",
     0, "{!}placeholder."),
    ("save_relative_of_merchant", "Attack the Bandit Lair", 0,
     "{!}placeholder."),
    ("save_town_from_bandits", "Save Town from Bandits", 0, "{!}placeholder."),
    ("quests_end", "Quests End", 0, "{!}."),
]

import mod_manager
quests = mod_manager.merge("quests", quests)
         (trp_looter, 15, 0)
     ]),
    ("desert_bandit_spawn_point", "the deserts", pf_disabled | pf_is_static,
     no_menu, pt_none, fac_outlaws, 0, ai_bhvr_hold, 0, (110, -100), [
         (trp_looter, 15, 0)
     ]),
    # add extra towns before this point
    ("spawn_points_end", "{!}last_spawn_point", pf_disabled | pf_is_static,
     no_menu, pt_none, fac_commoners, 0, ai_bhvr_hold, 0, (0., 0), [
         (trp_looter, 15, 0)
     ]),
    ("reserved_1", "{!}last_spawn_point", pf_disabled | pf_is_static, no_menu,
     pt_none, fac_commoners, 0, ai_bhvr_hold, 0, (0., 0), [(trp_looter, 15, 0)
                                                           ]),
    ("reserved_2", "{!}last_spawn_point", pf_disabled | pf_is_static, no_menu,
     pt_none, fac_commoners, 0, ai_bhvr_hold, 0, (0., 0), [(trp_looter, 15, 0)
                                                           ]),
    ("reserved_3", "{!}last_spawn_point", pf_disabled | pf_is_static, no_menu,
     pt_none, fac_commoners, 0, ai_bhvr_hold, 0, (0., 0), [(trp_looter, 15, 0)
                                                           ]),
    ("reserved_4", "{!}last_spawn_point", pf_disabled | pf_is_static, no_menu,
     pt_none, fac_commoners, 0, ai_bhvr_hold, 0, (0., 0), [(trp_looter, 15, 0)
                                                           ]),
    ("reserved_5", "{!}last_spawn_point", pf_disabled | pf_is_static, no_menu,
     pt_none, fac_commoners, 0, ai_bhvr_hold, 0, (0., 0), [(trp_looter, 15, 0)
                                                           ]),
]

import mod_manager
parties = mod_manager.merge("parties", parties)
  ("tracking","Tracking",sf_base_att_int|sf_effects_party,10,"Tracks become more informative. (Party skill)"),
  ("trainer","Trainer",sf_base_att_int,10,"Every day, each hero with this skill adds some experience to every other member of the party whose level is lower than his/hers. Experience gained goes as: {0,4,10,16,23,30,38,46,55,65,80}. (Personal skill)"),
  ("reserved_5","Reserved Skill 5",sf_base_att_int|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_6","Reserved Skill 6",sf_base_att_int|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_7","Reserved Skill 7",sf_base_att_int|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_8","Reserved Skill 8",sf_base_att_int|sf_inactive,10,"This is a reserved skill."), 
  ("looting","Looting",sf_base_att_agi|sf_effects_party,10,"This skill increases the amount of loot obtained by 10%% per skill level. (Party skill)"), 
  ("horse_archery","Horse Archery",sf_base_att_agi,10,"Reduces damage and accuracy penalties for archery and throwing from horseback. (Personal skill)"),
  ("riding","Riding",sf_base_att_agi,10,"Enables you to ride horses of higher difficulty levels and increases your riding speed and manuever. (Personal skill)"),
  ("athletics","Athletics",sf_base_att_agi,10,"Improves your running speed. (Personal skill)"),
  ("shield","Shield",sf_base_att_agi,10,"Reduces damage to shields (by 8%% per skill level) and improves shield speed and coverage. (Personal skill)"),
  ("weapon_master","Weapon Master",sf_base_att_agi,10,"Makes it easier to learn weapon proficiencies and increases the proficiency limits. Limits go as: 60, 100, 140, 180, 220, 260, 300, 340, 380, 420. (Personal skill)"),
  ("reserved_9","Reserved Skill 9",sf_base_att_agi|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_10","Reserved Skill 10",sf_base_att_agi|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_11","Reserved Skill 11",sf_base_att_agi|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_12","Reserved Skill 12",sf_base_att_agi|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_13","Reserved Skill 13",sf_base_att_agi|sf_inactive,10,"This is a reserved skill."), 
  ("power_draw","Power Draw",sf_base_att_str,10,"Lets character use more powerful bows. Each point to this skill (up to four plus power-draw requirement of the bow) increases bow damage by 14%%. (Personal skill)"),
  ("power_throw","Power Throw",sf_base_att_str,10,"Each point to this skill increases throwing damage by 10%%. (Personal skill)"),
  ("power_strike","Power Strike",sf_base_att_str,10,"Each point to this skill increases melee damage by 8%%. (Personal skill)"),
  ("ironflesh","Ironflesh",sf_base_att_str,10,"Each point to this skill increases hit points by +2. (Personal skill)"), 
  ("reserved_14","Reserved Skill 14",sf_base_att_str|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_15","Reserved Skill 15",sf_base_att_str|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_16","Reserved Skill 16",sf_base_att_str|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_17","Reserved Skill 17",sf_base_att_str|sf_inactive,10,"This is a reserved skill."), 
  ("reserved_18","Reserved Skill 18",sf_base_att_str|sf_inactive,10,"This is a reserved skill."), 
]

import mod_manager
skills = mod_manager.merge("skills", skills)
##  ("kingdom_5_rebels",  "Rhodok rebels",  0, 0.9, [("outlaws",-0.05),("peasant_rebels", -0.1),("deserters", -0.02),("mountain_bandits", -0.05),("forest_bandits", -0.05)], [], 0xCC2211),

  ("kingdoms_end","{!}kingdoms_end", 0, 0,[], []),

  ("robber_knights",  "{!}robber_knights", 0, 0.1, [], []),

  ("khergits","{!}Khergits", 0, 0.5,[("player_faction",0.0)], []),
  ("black_khergits","{!}Black Khergits", 0, 0.5,[("player_faction",-0.3),("kingdom_1",-0.02),("kingdom_2",-0.02)], []),

##  ("rebel_peasants","Rebel Peasants", 0, 0.5,[("vaegirs",-0.5),("player_faction",0.0)], []),

  ("manhunters","Manhunters", 0, 0.5,[("outlaws",-0.6),("player_faction",0.1)], []),
  ("deserters","Deserters", 0, 0.5,[("manhunters",-0.6),("merchants",-0.5),("player_faction",-0.1)], [], 0x888888),
  ("mountain_bandits","Mountain Bandits", 0, 0.5,[("commoners",-0.2),("merchants",-0.5),("manhunters",-0.6),("player_faction",-0.15)], [], 0x888888),
  ("forest_bandits","Forest Bandits", 0, 0.5,[("commoners",-0.2),("merchants",-0.5),("manhunters",-0.6),("player_faction",-0.15)], [], 0x888888),

  ("undeads","{!}Undeads", max_player_rating(-30), 0.5,[("commoners",-0.7),("player_faction",-0.5)], []),
  ("slavers","{!}Slavers", 0, 0.1, [], []),
  ("peasant_rebels","{!}Peasant Rebels", 0, 1.0,[("noble_refugees",-1.0),("player_faction",-0.4)], []),
  ("noble_refugees","{!}Noble Refugees", 0, 0.5,[], []),
]

##diplomacy start+ Define these for convenience
dplmc_factions_begin = 1 #As mentioned in the notes above, this is hardcoded and shouldn't be altered.  Deliberately excludes "no faction".
dplmc_non_generic_factions_begin = [x[0] for x in enumerate(factions) if x[1][0] == "merchants"][0] + 1
dplmc_factions_end   = len(factions)
##diplomacy end+

import mod_manager
factions = mod_manager.merge("factions", factions)
    ("sea_foam_a", psf_turn_to_velocity | psf_always_emit|psf_randomize_size, "prt_foam_a",
     1, 3.0, 1, 0.0, 0.0, 0.0,     #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.7, 0.1), (1, 0.0),        #alpha keys
     (1.0, 1.0), (1, 1.0),      #red keys
     (1.0, 1.0), (1, 1.0),      #green keys
     (1.0, 1.0), (1, 1.0),      #blue keys
     (0.0, 4),   (1.0, 4.5),   #scale keys
     (10.0, 1.0, 0),           #emit box size
     (0, 1, 0),                 #emit velocity
     0.0,                       #emit dir randomness
     0,                       #rotation speed
     0.5                        #rotation damping
    ),
    ("fall_leafs_a", psf_billboard_2d | psf_always_emit, "prt_mesh_yrellow_leaf_a",
     1, 9, 0, 0.025, 4, 4,      #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0, 1), (1, 1),            #alpha keys
     (0, 0.5), (1, 0.5),        #red keys
     (0, 0.5), (1, 0.5),        #green keys
     (0, 0.5), (1, 0.5),        #blue keys
     (0, 0.25),   (1, 0.25),    #scale keys
     (4, 4, 4),                 #emit box size
     (0, 0.01, -0.9),           #emit velocity
      0.02,                     #emit dir randomness
      15,                       #rotation speed
      0,                        #rotation damping
    ),
]

import mod_manager
particle_systems = mod_manager.merge("particle_systems", particle_systems)
    [("womanface_young",0xffe3e8ef,["hair_blonde"],[0xffffffff, 0xffb04717, 0xff502a19, 0xff19100c]),
     ("womanface_b",0xffdfdfdf,["hair_blonde"],[0xffa5481f, 0xff502a19, 0xff19100c, 0xff0c0d19]),
     ("womanface_a",0xffe8dfe5,["hair_blonde"],[0xff502a19, 0xff19100c, 0xff0c0d19]),
     ("womanface_brown",0xffaf9f7e,["hair_blonde"],[0xff19100c, 0xff0c0d19, 0xff007080c]),
     ("womanface_african",0xff808080,["hair_blonde"],[0xff120808, 0xff007080c]),
#     ("womanface_midage",0xffe5eaf0,["hair_black","hair_brunette","hair_red","hair_white"],[0xffffcded, 0xffbbcded, 0xff99eebb]),
     ],#woman_face_textures
    [(voice_die,"snd_woman_die"),(voice_hit,"snd_woman_hit"),(voice_yell,"snd_woman_yell")], #voice sounds
    "skel_human", 1.0,
    psys_game_blood,psys_game_blood_2,
  ),
  
##  (
##    "undead", 0,
##    "undead_body", "undead_calf_l", "undead_handL",
##    "undead_head", undead_face_keys,
##    [],
##    [],
##    [],
##    [],
##    [("undeadface_a",0xffffffff,[]),
##     ("undeadface_b",0xffcaffc0,[]),
##     ], #undead_face_textures
##    [], #voice sounds
##    "skel_human", 1.0,
##  ),
]

import mod_manager
skins = mod_manager.merge("skins", skins)
    ("banner_118", 0, "map_flag_f13", banner_scale, 0),
    ("banner_119", 0, "map_flag_f14", banner_scale, 0),
    ("banner_120", 0, "map_flag_f15", banner_scale, 0),
    ("banner_121", 0, "map_flag_f16", banner_scale, 0),
    ("banner_122", 0, "map_flag_f17", banner_scale, 0),
    ("banner_123", 0, "map_flag_f18", banner_scale, 0),
    ("banner_124", 0, "map_flag_f19", banner_scale, 0),
    ("banner_125", 0, "map_flag_f20", banner_scale, 0),
    ("banner_126", 0, "map_flag_f01", banner_scale, 0),
    ("banner_127", 0, "map_flag_f02", banner_scale, 0),
    ("banner_128", 0, "map_flag_f03", banner_scale, 0),
    ("banner_129", 0, "map_flag_f04", banner_scale, 0),
    ("banner_130", 0, "map_flag_f05", banner_scale, 0),
    ("banner_131", 0, "map_flag_f06", banner_scale, 0),
    ("banner_132", 0, "map_flag_f07", banner_scale, 0),
    ("banner_133", 0, "map_flag_f08", banner_scale, 0),
    ("banner_134", 0, "map_flag_f09", banner_scale, 0),
    ("banner_135", 0, "map_flag_f10", banner_scale, 0),
    ("map_flag_kingdom_a", 0, "map_flag_kingdom_a", banner_scale, 0),
    ("map_flag_kingdom_b", 0, "map_flag_kingdom_b", banner_scale, 0),
    ("map_flag_kingdom_c", 0, "map_flag_kingdom_c", banner_scale, 0),
    ("map_flag_kingdom_d", 0, "map_flag_kingdom_d", banner_scale, 0),
    ("map_flag_kingdom_e", 0, "map_flag_kingdom_e", banner_scale, 0),
    ("map_flag_kingdom_f", 0, "map_flag_kingdom_f", banner_scale, 0),
    ("banner_136", 0, "map_flag_15", banner_scale, 0),
    ("bandit_lair", mcn_no_shadow, "map_bandit_lair", 0.45, 0),
]

import mod_manager
map_icons = mod_manager.merge("map_icons", map_icons)
예제 #9
0
    ("distant_dog_bark", sf_2d | sf_priority_3 | sf_vol_8,
     ["d_dog1.ogg", "d_dog2.ogg", "d_dog3.ogg", "d_dog7.ogg"]),
    ("distant_owl", sf_2d | sf_priority_3 | sf_vol_9,
     ["d_owl2.ogg", "d_owl3.ogg", "d_owl4.ogg"]),
    ("distant_chicken", sf_2d | sf_priority_3 | sf_vol_8,
     ["d_chicken1.ogg", "d_chicken2.ogg"]),
    ("distant_carpenter", sf_2d | sf_priority_3 | sf_vol_3,
     ["d_carpenter1.ogg", "d_saw_short3.ogg"]),
    ("distant_blacksmith", sf_2d | sf_priority_3 | sf_vol_4,
     ["d_blacksmith2.ogg"]),
    ("arena_ambiance", sf_2d | sf_priority_8 | sf_vol_3 | sf_looping,
     ["arena_loop11.ogg"]),
    ("town_ambiance", sf_2d | sf_priority_8 | sf_vol_3 | sf_looping,
     ["town_loop_3.ogg"]),
    ("tutorial_fail", sf_2d | sf_vol_7, ["cue_failure.ogg"]),
    ("your_flag_taken", sf_2d | sf_priority_10 | sf_vol_10,
     ["your_flag_taken.ogg"]),
    ("enemy_flag_taken", sf_2d | sf_priority_10 | sf_vol_10,
     ["enemy_flag_taken.ogg"]),
    ("flag_returned", sf_2d | sf_priority_10 | sf_vol_10,
     ["your_flag_returned.ogg"]),
    ("team_scored_a_point", sf_2d | sf_priority_10 | sf_vol_10,
     ["you_scored_a_point.ogg"]),
    ("enemy_scored_a_point", sf_2d | sf_priority_10 | sf_vol_10,
     ["enemy_scored_a_point.ogg"]),
]

import mod_manager

sounds = mod_manager.merge("sounds", sounds)
     + DPLMC_DIPLOMACY_VERSION_STRING + "."),
    ("dplmc_autoloot", "Autoloot",
     "Autoloot settings are managed through the camp menu.  It allows you to have your companions (named heroes, not ordinary soldiers) automatically select equipment from the loot after a battle.  In order for this feature to be enabled, one of the following must be true: someone in your party must have a Looting score of 2 or better, someone in your party must have an Inventory Management score of 3 or better, or the player himself must have an Inventory Management score of 2 or better."
     ),
    ("dplmc_autosell", "Autosell",
     "The Autosell feature allows you to sell many items to a merchant all at once, instead of selling them one at a time.  Autosell settings are managed through the Town menu, where you can specify which types of items you want to be able to sell (e.g. you might not want to automatically sell horses) and a price limit (for example, you might not want to automatically sell any items that cost more than 200 denars).^^ There are two primary ways to use autosell.  If you speak to a Horse Merchant, Armorer, or Weapon Merchant in a town, there is a conversation option to sell items of a particular type.  Also, when visiting a town there will be an option in the Marketplace section of the menu to automatically sell your items throughout the town.^^ For people who used Autosell in other mods, note that this sells from your own inventory, according to certain rules.  Items you have equipped will never be sold, and neither will the first three items in your inventory.  After that, autosell also skips anything that it thinks might be your personal equipment (since people often have more than one set).  Regardless of whether you have them equipped, it won't sell your best bow, crossbow, armor, helmet, boots, or gloves.  If you have a bow you can use, it won't sell your best three packs of arrows, and if you have a crossbow it won't sell your best three packs of bolts.  For shields, one-handed weapons, two-handed weapons, polearms, and horses, it won't sell your best or second-best item.  Your best three throwing weapons also will not be sold.  However, items that your character is unable to use are considered fair game."
     ),
    ##diplomacy end+
    ("morale", "Morale",
     "Morale represents the ability and willingness of the troops in a party to summon up the endurance, bravery, and discipline they need to face the stresses of battle and the march. It is not the same thing as the troops' happiness. Elite troops may grumble and whine about the hardships of campaigning -- but then stand together as one when the arrows start to fly. On the other hand, a commander who gives his men everything they want may find that they grow soft, and waiver before the enemy's charge.^^ Morale's greatest impact is on a party's behavior in battle, determining how aggressively troops engage the enemy, and how likely they are to break and run if they perceive the tide of battle turning against them. Morale also affects a party's march speed, as a less motivated party will move more slowly, as the men are not pushing themselves to their physical limit, and pause more frequently, as it waits for stragglers to catch up. Finally, a party with very low morale will start to suffer desertions.^^ Some factors that affect morale are intuitive. For example, a charismatic commander with a reputation for winning battles can infuse his or her men with a sense of confidence. Leaders who give their men well ample and varied supplies of food, and pay them on time, demonstrate that they care about their troops' welfare, and are less likely to lead them into disaster.^^ Other factors are less intuitive -- particularly those related to a party's sense of group cohesion. In a small tight-knit party, for example, men will often fight hard against daunting odds to avoid showing cowardice before their comrades-in-arms. A large party on the other hand may see its cohesion strained, as the commander has less time to supervise the men, listen to their grievances, and resolve their disputes. Frequent battles will strengthen the bonds between men, while long periods without combat will see the troops become bored and quarrelsome.^^ The morale report, accessibly by hitting the 'reports' button will give the player a sense of the factors affecting his or her men's morale."
     ),
    ("economy", "Economy",
     "Towns and villages in Calradia need a wide variety of goods for their populations to remain healthy and productive. First in importance is food. Grain is the staple crop of Calradia, but people also need fat and protein in the form of meat, fish, or cheese. It takes almost as much work to preserve meat as to produce it in the first place, so salt is also in high demand. After food comes clothing: heavy wool, lighter linens, or luxurious velvet. Finally, people need the tools of their trade: ironware, pottery, leatherware, and, of course, arms, armor, and horses for war.^^Most agricultural products are produced in the villages, while artisans in the towns specialize in manufactured or artisanal goods like fabrics or ironware. Also, different resources can be found in different parts of the country. Consequently, the key to prosperity in Calradia is trade -- both between the villages and the towns, and between the major towns themselves.^^When trade flows, goods will be available and affordable, the population of a center will be healthy and energetic, and migrants will flock from the nearby regions. The center will produce more, consume more, and be able to contribute more in taxes to their lords. When trade dries up, towns and villages will see their workers flee to seek work elsewhere, and economic activity will drift to a stand-still. Thus, it is in the interests of rulers to protect trade routes from the hazards of war and banditry. A smart merchant, however, may want to seek out towns which have become isolated from the rest of the land, as he or she may be able to turn a tidy profit from the resulting price imbalances.^^Because villagers usually plan to take their goods to market in towns, village markets will be rather quiet places, and villagers will buy cheap and sell dear. Serious merchants will stick to the towns to make a profit, although some parties may decide to make a quick stop in a village to acquire supplies.^^A player who wants to know about the factors affecting a region's prosperity can speak to the guildmaster of the local town. Other information can be gleaned from passers-by, although they might not know very much outside of their own particular trade."
     ),
    ("courtship", "Courtship",
     "Players may wish to marry into one of Calradia's noble families. Marriage is not necessary for a player to rise in power and stature, but it does provide players with an opportunity to improve their relation with lords and establish a claim to the throne.^^Marriage requirements will be different for males and females. A male character will usually need to pursue a traditional path of courtship. He should establish a reputation in Calradian aristocratic society, get on good terms with his bride's parents or guardians, and then woo the lady according to local custom. If a player grows impatient, he may attempt to take a shortcut -- but there will be consequences in his relations with other lords.^^A male character should keep in mind that other lords will be competing with him for the affections of the kingdom's ladies. Also, a lady's tastes are unpredictable, and a player may also find that the object of his love does not love him in return. Romance, in Calradia as elsewhere, does not always prosper. Of course, a player may resort to other, less gentlemanly means of winning a lady's heart, but again, that will have a serious impact on his reputation.^^To get started on the path of courtship, a male player should try to get involved in the social life of the Calradian aristocracy, attending feasts and tournaments. Also, wandering troubadours and poets can serve as a useful repository of information on courtship, and keep the player up to date about the latest gossip.^^Female characters can also marry -- but they should keep in mind that Calradian society is very traditional, and, as adventurers, they have chosen a very unconventional path for a woman. A female character may have to look for a while to find a lord who is open-minded enough to marry her.^^On the bright side, a female character does not have to go through the elaborate rituals of courtship, and she also may gain more from a marriage than her male counterpart. For a woman adventurer, marriage can be a quick path to power -- and an unscrupulous character may be able to use her husband as a tool of her political ambitions."
     ),
    ("politics", "Politics",
     "The realms of Calradia, although they represent different cultures, all adhere to the same basic political system: feudalism. Feudalism is based on the relationships between individuals: the oaths of loyalty given by a vassal to his or her liege. In exchange for this oath, the vassal will usually receive a fief, a parcel of land whose income will be used by the vassal to raise troops to support the liege in time of war. A liege also has an obligation to protect his vassals, and to treat them justly.^^This is how it works in theory, anyway. In practice, vassals will not always work in their factions' interests, particular as they are often quarreling with one another. Nobles have different personalities, and sometimes those personalities clash. Or, perhaps two nobles were once friends, but fell out over in the aftermath of a setback or a defeat -- or because they both were wooing the same lady. Jealousies will also surface as they vie for the favor of the king -- perhaps over newly conquered lands, or over who will be given the coveted office of marshal, the lord in charge of organizing large-scale campaigns.^^When one realm in Calradia makes war on another, the political unity of the each kingdom is as important as the quality or number of its soldiers in determining the outcome. In a cohesive kingdom, nobles will join together in a large force to sweep their opponents before them. In a kingdom divided by petty quarrels, lords will fail to respond to the marshal's summons, or drift away to attend to their own business if a campaign is not going well. A faction's political cohesion will also impact warfare when campaigns are not in progress. In a divided faction, lords will be less likely to join together on raids and patrols, and come to each other's defense.^^If it seems self-defeating for nobles to bicker and quarrel when the enemy is just over the horizon, keep this in mind -- ultimately, a noble's loyalty goes not to a particular faction or culture, but to himself and to his family. If a noble fears that his faction is collapsing, or if he is being neglected by his liege, he can usually find a reason to withdraw his oath of allegiance, and change sides. Players should keep this in mind, as they may find that there are opportunities to turn discontented former enemies into allies."
     ),
    ("character_backgrounds", "Character_Backgrounds",
     "A player character in Calradia may choose to come from a variety of social backgrounds. This choice will affect not just his or her starting skills and equipment, but also the course of his or her career as an adventurer.^^War and politics in Calradia are traditionally dominated by male aristocrats. A nobleman player character may find that he is invited into this 'old boys' club' fairly quickly, but women and commoners may face a few extra hurdles on the way. If you choose to start the game as a male nobleman, you can think of it as the 'easy' setting. Starting as a noblewoman or a male commoner is somewhat more difficult, and starting as a female commoner is probably the most challenging way to begin a game.^^However, women have some starting advantages. Simply by taking up arms, a female warrior will draw attention to herself, and she may find that she can build up her reputation faster than a male. Also, it is traditionally easier for a woman to marry up the social ladder than it is for a man, and a woman may find she can gain more from a strategic marital alliance than her male counterpart.^^Finally, keep in mind that the game does not place any limits on the upward mobility of characters based on their background. Noble or common, male or female, married or unmarried -- anyone can rise to become ruler of all Calradia, if they are sufficiently brave, lucky, or resourceful."
     ),
    ("military_campaigns", "Military Campaigns",
     "When kingdoms in Calradia go to war, their armies have two basic offensive options. They can try to attack villages and lay waste to the countryside, damaging their enemy's prestige and economy. Or, they can try to seize and hold castles or towns, taking territory This second option can involve long, bloody sieges, but will yield more decisive results.^^It is important to note that the realms of Calradia do not field standing armies, which remain in the field as long as the ruler desires. Rather, Calradian realms are protected by feudal levies comprised of the major nobles and their individual retinues.  Sometimes, these nobles launch their own private attacks into enemy territory, but the most decisive events will usually take place when the great hosts are assembled. The kingdom's marshal, a noble appointed by the king, will summon the host before the campaign and lead them out to battle. However, he should be careful not to keep them in the field too long. Otherwise, the host will begin to disintegrate, as the vassals drift off to pursue their own business, and the army will be vulnerable to a counter-attack.^^For this reason, the rhythm of wars in Calradia often resemble the rhythm of a duel between two individual combatants. One side will gather its strength and seek to land a blow against the enemy's territory. If the marshal spends too little time gathering the vassals, he may not be able to do any real damage. If he spends too much time, then the campaign may end before it has even begun. A large realm will have an advantage over a smaller one, just as a brawny combatant has an edge over a smaller foe, but a realm's political cohesion can also be a factor, just as a fighter with great stamina can outlast her opponent. Sometimes, the armies of two realms will meet head on, resulting in a major battle in which both numbers and morale will decide the outcome.^^Kingdoms will have imperfect intelligence about their enemies. Attacking lords will need to frequently scout enemy territory to determine which fortresses may be vulnerable. An army defending its homeland will benefit from the alarms raised by castles and towns, which broadcast intelligence about enemy movements in the area. Such intelligence will be imprecise, however, particularly when it comes to numbers. A defending force which sets out to raise a siege or rescue a village may be able to overwhelm an unprepared attacker -- or it may miscalculate, and find that it is the one to be overwhelmed. Attackers, in turn, must be careful how far they advance into enemy territory, with aggressive marshals venturing further than cautious ones.^^Players will be expected to join in their faction's military campaign, either by joining the host, or by scouting ahead into enemy territory. Some players may find that their realm's marshal is too cautious, or too aggressive, for their tastes. In this case, they can intrigue with other lords to try to replace the marshal, or build support to become the marshal themselves.^^Most wars are of limited duration. A king who goes to war will, for the sake of honor, feel obligated to pursue the conflict for a short while. However, unless he is soundly beating his enemy. he may soon start looking for a way out of the conflict, lest he leave himself vulnerable to an attack by a third party. Calradia's rulers are keenly aware that today's ally may be tomorrow's enemy, and vice versa."
     ),
]

import mod_manager
info_pages = mod_manager.merge("info_pages", info_pages)
  ("mp_ui_host_maps_18", 0, "mp_ui_host_maps_d3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  ("mp_ui_host_maps_19", 0, "mp_ui_host_maps_e2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  ("mp_ui_host_maps_20", 0, "mp_ui_host_maps_e1", 0, 0, 0, 0, 0, 0, 1, 1, 1),

##diplomacy begin
  ("longer_button", 0, "longer_button", 0, 0, 0, 0, 0, 0, 0.4, 0.5, 0.5),
  ("longer_button_down", 0, "longer_button_down", 0, 0, 0, 0, 0, 0, 0.4, 0.5, 0.5),

  # Jrider + REPORTS PRESENTATIONS 1.0
  ("message_window", 0, "message_window", 0, 0, 0, 0, 0, 0, 0.8, 0.5, 0.5), # in core_ui_meshes.brf, same one as in 1st presentation
  ("face_gen_window", 0, "face_gen_window", 0, 0, 0, 0, 0, 0, 1, 1, 1), # in user_interface_b.brf, automatically loaded
  # Jrider -

##diplomacy end
##diplomacy start+
##Additional meshes, used by components ported from rubik's Custom Commander
  ("options_window", 0, "options_window", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  ("note_window", 0, "note_window", 0, 0, 0, 0, 0, 0, 1, 1, 1),

  ("drop_button", 0, "button_drop", 0, 0, 0, 0, 0, 0, 1, 0.5, 0.5),
  ("drop_button_down", 0, "button_drop_clicked", 0, 0, 0, 0, 0, 0, 1, 0.5, 0.5),
  ("drop_button_hl", 0, "button_drop_hl", 0, 0, 0, 0, 0, 0, 1, 0.5, 0.5),
  ("drop_button_child", 0, "button_drop_child", 0, 0, 0, 0, 0, 0, 1.0, 0.5, 0.5),
  ("drop_button_child_down", 0, "button_drop_child_clicked", 0, 0, 0, 0, 0, 0, 1.0, 0.5, 0.5),
  ("drop_button_child_hl", 0, "button_drop_child_hl", 0, 0, 0, 0, 0, 0, 1.0, 0.5, 0.5),
##diplomacy start+
]

import mod_manager
meshes = mod_manager.merge("meshes", meshes)
     mtf_sit_town | mtf_sit_tavern | mtf_sit_night | mtf_culture_all),
    ("travel_sarranid", "middle_eastern_travel.ogg",
     mtf_culture_6 | mtf_sit_travel,
     mtf_sit_town | mtf_sit_tavern | mtf_sit_night | mtf_culture_all),
    ("uncertain_homestead", "uncertain_homestead.ogg", mtf_sit_travel,
     mtf_sit_town | mtf_sit_night | mtf_sit_tavern),
    ("hearth_and_brotherhood", "hearth_and_brotherhood.ogg", mtf_sit_travel,
     mtf_sit_town | mtf_sit_night | mtf_sit_tavern),
    ("tragic_village", "tragic_village.ogg", mtf_sit_travel,
     mtf_sit_town | mtf_sit_night | mtf_sit_tavern),
    ("victorious_evil", "victorious_evil.ogg", mtf_persist_until_finished, 0),
    ("victorious_neutral_1", "victorious_neutral_1.ogg",
     mtf_persist_until_finished | mtf_sit_victorious, 0),
    ("victorious_neutral_2", "victorious_neutral_2.ogg",
     mtf_persist_until_finished | mtf_sit_victorious, 0),
    ("victorious_neutral_3", "victorious_neutral_3.ogg",
     mtf_persist_until_finished | mtf_sit_victorious, 0),
    ("victorious_swadian", "victorious_swadian.ogg",
     mtf_persist_until_finished | mtf_culture_2 | mtf_sit_victorious, 0),
    ("victorious_vaegir", "victorious_vaegir.ogg",
     mtf_persist_until_finished | mtf_culture_2 | mtf_sit_victorious, 0),
    ("victorious_vaegir_2", "victorious_vaegir_2.ogg",
     mtf_persist_until_finished | mtf_culture_2 | mtf_sit_victorious, 0),
    ("wedding", "wedding.ogg", mtf_persist_until_finished, 0),
    ("coronation", "coronation.ogg", mtf_persist_until_finished, 0),
]

import mod_manager

music = mod_manager.merge("music", tracks)
     ]),
    ("retired_troop_color", 0, "mat_troop_portrait_color", 2048, 2048, 0, 0,
     600, 600, [
         (store_script_param, ":type", 1),
         (cur_tableau_set_background_color, 0xFFe7d399),
         (cur_tableau_set_ambient_light, 10, 11, 15),
         (call_script, "script_add_troop_to_cur_tableau_for_retirement",
          ":type"),
     ]),
    ("retirement_troop", 0, "tableau_with_transparency", 2048, 2048, 0, 0, 600,
     600, [
         (store_script_param, ":type", 1),
         (cur_tableau_set_background_color, 0xFF888888),
         (cur_tableau_set_ambient_light, 10, 11, 15),
         (set_fixed_point_multiplier, 100),
         (cur_tableau_set_camera_parameters, 0, 40, 40, 0, 100000),
         (init_position, pos1),
         (position_set_z, pos1, 100),
         (position_set_x, pos1, -20),
         (position_set_y, pos1, -20),
         (cur_tableau_add_tableau_mesh, "tableau_retired_troop_color", ":type",
          pos1, 0, 0),
         (position_set_z, pos1, 200),
         (cur_tableau_add_tableau_mesh, "tableau_retired_troop_alpha_mask",
          ":type", pos1, 0, 0),
     ]),
]

import mod_manager
tableau_materials = mod_manager.merge("tableau_materials", tableaus)
                                 0.1961], [1.0, 1.0, 1.0, 1.0000]),
    ("map_params", 0, 3, [128.0000, 1.04, 1.2941,
                          10.0000], [2.3725, 2.1569, 1.8431,
                                     0.4863], [1.0, 1.0, 1.05, 1.0]),
    ("indoors", 0, 0, [128.0000, 1.0, 1.2549,
                       10.0000], [0.6471, 4.7843, 4.1616,
                                  0.00155], [0.9804, 0.9804, 1.5294, 1.0000]),
    ("sunset", 0, 0, [128.0000, 0.5882, 0.9804,
                      0.9804], [0.0784, 2.1176, 1.3725,
                                0.1255], [0.9804, 0.9804, 1.7647, 1.0000]),
    ("night", 0, 0, [128.0000, 1.0, 1.2549,
                     10.0000], [0.6471, 4.7843, 1.2157,
                                0.0000], [0.9804, 0.9804, 1.5294, 1.0000]),
    #("sunny", 0, 0, [128.0000, 0.6667, 0.9804, 0.9804], [0.4510, 2.4314, 1.2941, 0.1412], [0.9804, 0.9804, 1.4118, 1.0000]),
    # ("sunny", 0, 1, [128.0000, 1.0, 0.9804, 0.9804], [1.2157, 2.4314, 1.3333, 0.1412], [1.0196, 1.0804, 1.4314, 1.0000]) ,
    ("sunny", 0, 0, [128.0000, 0.5882, 0.9804,
                     0.9804], [0.0784, 2.1176, 1.3725,
                               0.1255], [0.9804, 0.9804, 1.7647, 1.0000]),
    ("cloudy", 0, 0, [128.0000, 1.0, 0.9804,
                      0.0000], [0.3137, 2.6667, 2.0000,
                                0.4314], [0.9804, 0.9804, 1.4314, 1.0000]),
    ("overcast", 0, 0, [128.0000, 1.0, 0.9804,
                        0.0000], [0.3137, 2.6667, 2.0000,
                                  0.0], [0.9804, 0.9804, 1.0314, 1.0000]),
    ("high_contrast", 0, 3, [128.0000, 1.0000, 1.2941, 10.0000],
     [0.4314, 2.0000, 1.0588, 0.0549], [2.0000, 0.7059, 1.4902, 1.0000]),
]

import mod_manager
postfx = mod_manager.merge("postfx", postfx_params)