def get_slottype(typeid): if dogma.type_has_effect(typeid, dogma.State.OFFLINE, Effect.LoPower): return 'low' if dogma.type_has_effect(typeid, dogma.State.OFFLINE, Effect.MedPower): return 'medium' if dogma.type_has_effect(typeid, dogma.State.OFFLINE, Effect.HiPower): return 'high' if dogma.type_has_effect(typeid, dogma.State.OFFLINE, Effect.RigSlot): return 'rig' if dogma.type_has_effect(typeid, dogma.State.OFFLINE, Effect.SubSystem): return 'subsystem' raise Exception("module slot found for %r", typeid)
def test(self): ctx = dogma.Context() slot = ctx.add_module(TYPE_125mmGatlingAutoCannonII) loc = dogma.Location.module(slot) affectors = ctx.get_affectors(loc) ctx.set_ship(TYPE_Rifter) affectors_with_ship = ctx.get_affectors(loc) self.assertTrue(dogma.type_has_effect(TYPE_125mmGatlingAutoCannonII, dogma.State.ONLINE, EFFECT_HiPower)) self.assertTrue(dogma.type_has_active_effects(TYPE_125mmGatlingAutoCannonII)) self.assertTrue(dogma.type_has_overload_effects(TYPE_125mmGatlingAutoCannonII)) self.assertTrue(dogma.type_has_projectable_effects(TYPE_StasisWebifierI)) self.assertEqual(dogma.type_base_attribute(TYPE_Rifter, ATT_LauncherSlotsLeft), 2) ctx.add_charge(slot, TYPE_BarrageS) self.assertEqual(ctx.get_number_of_module_cycles_before_reload(slot), 200) effect = dogma.get_nth_type_effect_with_attributes(TYPE_125mmGatlingAutoCannonII, 0) (duration, tracking, discharge, att_range, falloff, usagechance, ) = ctx.get_location_effect_attributes(loc, effect) self.assertEqual(falloff, 7500) self.assertEqual(att_range, 1200) self.assertEqual(discharge, 0) capacitors = ctx.get_capacitor_all(False) self.assertEqual(len(capacitors), 1) self.assertIn(ctx, capacitors)