def _getValue(self): value = self.settingsCore.getSetting(self._name.getValue()) settingType = self._getInitParams() if value.__class__.__name__ == settingType: self._value.setValue(value) else: errorVScript(self, 'Incorrect type of the game setting value, {} expected '.format(value.__class__.__name__))
def _getClassName(self): className = '' if self._vehicle.hasValue() and self._vehicle.getValue() is not None: className = vehicles.getVehicleClass(self._vehicle.getValue().typeDescriptor.type.compactDescr) if className is None: errorVScript(self, 'Unknown vehicle className') self._className.setValue(className) return
def _isVisible(self): hintId = self._id.getValue() hint = HintManager.hintManager().getHint(hintId) if hint is not None: visible = hint.isActive() self._visible.setValue(visible) else: errorVScript(self, 'Unknown hint id') return
def _execState(self): if helpers.isPlayerAvatar(): deviceIdx = self._device.getValue() if deviceIdx >= len(vehicles.VEHICLE_DEVICE_TYPE_NAMES): errorVScript(self, 'unknown device identifier.') return state = getPartState(vehicles.VEHICLE_DEVICE_TYPE_NAMES[deviceIdx]) self._state.setValue(state) else: errorVScript(self, 'BigWorld.player is not player avatar.')
def _execute(self): topHint = self._getBattleTopHint() if topHint is not None: penetration = self._penetration.getValue() value = self._SHOT_RESULT_TO_PIERCING_CHANCE_HINT[penetration] topHint.as_setPenetrationS(value, self._isColorBlind.getValue()) else: errorVScript(self, "Can't get the Boot Camp hint") self._out.call() return
def __execute(self): if not IS_EDITOR: hintId = self._id.getValue() hint = HintManager.hintManager().getHint(hintId) if hint is not None: self._processHint(hint) else: errorVScript(self, 'Unknown hint id') self._out.call() return
def _execState(self): if helpers.isPlayerAvatar(): tankmanIdx = self._tankman.getValue() if tankmanIdx >= len(vehicles.VEHICLE_TANKMAN_TYPE_NAMES): errorVScript(self, 'unknown tankman identifier.') return state = getPartState( vehicles.VEHICLE_TANKMAN_TYPE_NAMES[tankmanIdx]) self._state.setValue(state) else: errorVScript(self, 'BigWorld.player is not player avatar.')
def onPlayerVehicleTankmanEvent(self, tankmanName, isHit): tankmanName = getPartName(tankmanName) if tankmanName in vehicles.VEHICLE_TANKMAN_TYPE_NAMES: tankman = vehicles.VEHICLE_TANKMAN_TYPE_NAMES.index(tankmanName) if isHit: self._index = 0 else: self._index = 1 self._callOutput(tankman) else: errorVScript(self, 'OnVehiclePlayerDeviceCrit unknown tankmanName') return
def onPlayerVehicleDeviceEvent(self, deviceName, isCritical, isHit): deviceName = getPartName(deviceName) if deviceName in vehicles.VEHICLE_DEVICE_TYPE_NAMES: device = vehicles.VEHICLE_DEVICE_TYPE_NAMES.index(deviceName) if isHit: self._index = 0 if isCritical else 1 else: self._index = 3 if isCritical else 2 self._callOutput(device) else: errorVScript(self, 'OnVehiclePlayerDeviceCrit unknown deviceName') return
def onStartScript(self): sessionProvider = dependency.instance(IBattleSessionProvider) ctrl = sessionProvider.shared.messages if ctrl is not None: ctrl.onShowVehicleErrorByKey += self.__onShowVehicleErrorByKey ctrl.onShowVehicleMessageByKey += self.__onShowVehicleMessageByKey ctrl.onShowVehicleMessageByCode += self.__onShowVehicleMessageByCode ctrl.onShowPlayerMessageByKey += self.__onShowPlayerMessageByKey ctrl.onShowPlayerMessageByCode += self.__onShowPlayerMessageByCode else: errorVScript(self, "Can't access the BattleMessagesController") return
def _execute(self): if helpers.isPlayerAvatar(): avatar = BigWorld.player() vehicles = avatar.vehicles team = self._team.getValue() if self._team.hasValue() else None if team is not None: vehicles = (v for v in vehicles if v.publicInfo.team == team) if self._excludePlayer.hasValue() and self._excludePlayer.getValue(): vehicles = (v for v in vehicles if v.id != avatar.vehicle.id) if self._excludeDestroyed.hasValue() and self._excludeDestroyed.getValue(): vehicles = (v for v in vehicles if v.isAlive()) self._vehicles.setValue(map(weakref.proxy, vehicles)) else: errorVScript(self, 'BigWorld.player is not player avatar.') return
def _execHasTankman(self): if helpers.isPlayerAvatar(): tankmanIdx = self._tankman.getValue() if tankmanIdx >= len(vehicles.VEHICLE_TANKMAN_TYPE_NAMES): errorVScript(self, 'unknown tankman identifier.') return tankmanName = [ pn + 'Health' for pn in getPartNames( vehicles.VEHICLE_TANKMAN_TYPE_NAMES[tankmanIdx]) ] isHas = any( (te.name in tankmanName for te in BigWorld.player().vehicleTypeDescriptor.type.tankmen )) self._hasTankman.setValue(isHas) else: errorVScript(self, 'BigWorld.player is not player avatar.')
def _execHasDevice(self): if helpers.isPlayerAvatar(): deviceIdx = self._device.getValue() if deviceIdx >= len(vehicles.VEHICLE_DEVICE_TYPE_NAMES): errorVScript(self, 'unknown device identifier.') return deviceNames = [ pn + 'Health' for pn in getPartNames( vehicles.VEHICLE_DEVICE_TYPE_NAMES[deviceIdx]) ] isHas = any( (te.name in deviceNames for te in BigWorld.player().vehicleTypeDescriptor.type.devices )) self._hasDevice.setValue(isHas) else: errorVScript(self, 'BigWorld.player is not player avatar.')
def __init__(self, *args, **kwargs): super(GetUDOByNameBase, self).__init__(*args, **kwargs) self._nameType, self._type = self._getInitParams() if self._nameType == 'single name': self._name = self._makeDataInputSlot('name', SLOT_TYPE.STR) elif self._nameType == 'multiple names': self._names = self._makeDataInputSlot('names', arrayOf(SLOT_TYPE.STR)) elif self._nameType == 'any names': pass else: errorVScript(self, 'Unsupported name reference') self._UDOs = self._makeDataOutputSlot(self._type + 's', arrayOf(self._type), self._getAll) self._firstUDO = self._makeDataOutputSlot('first' + self._type, self._type, self._getFirst)
def _execute(self, play): if helpers.isPlayerAvatar(): avatar = BigWorld.player() arenaType = avatar.arena.arenaType if arenaType.wwmusicSetup is not None: musicId = self._musicId.getValue() soundEventName = arenaType.wwmusicSetup.get(musicId, None) if soundEventName: self.__combatMusic = SoundGroups.g_instance.getSound2D( soundEventName) if self.__combatMusic is not None: if play: if not self.__combatMusic.isPlaying and not BattleReplay.g_replayCtrl.isTimeWarpInProgress: self.__combatMusic.play() elif self.__combatMusic.isPlaying: self.__combatMusic.stop() return elif musicId in arenaType.wwmusicSetup: return errorVScript(self, "Can't play combat music") return
def _execute(self): self._writeLog('_execute {}'.format(self._params.getValue())) errString = self._processParams() if errString: return errorVScript(self, errString) else: if constants.IS_CELLAPP: from items.vehicles import g_cache import InfluenceZone eqExtra = g_cache.commonConfig['extrasDict'].get(self.eqName) if eqExtra: eqExtra._readConfig(None, None) self._out.call() return
def onStartScript(self): if hasattr(BigWorld.player(), 'arena'): BigWorld.player( ).arena.onVehicleHealthChanged += self.__onDamageReceived else: errorVScript(self, 'can not subscribe on event')
def _camera(self): if self.hangarSpace is None or self.hangarSpace.space is None: errorVScript(self, "Can't access the hangar space") return else: return self.hangarSpace.space.camera
def onStartScript(self): if hasattr(BigWorld.player(), 'arena'): BigWorld.player().arena.onVehicleKilled += self.__onVehicleKilled else: errorVScript(self, 'can not subscribe on event')
def _avatar(self): if helpers.isPlayerAvatar(): return BigWorld.player() errorVScript(self, 'BigWorld.player is not player avatar.')
def onFinishScript(self): manager = TriggersManager.g_manager if manager: manager.delListener(self) else: errorVScript(self, 'TriggersManager.g_manager is None')
def onStartScript(self): manager = TriggersManager.g_manager if manager: manager.addListener(self) else: errorVScript(self, 'TriggersManager.g_manager is None')